ಡೆವ್ ಲಾಗ್: MCP, ಇಮೇಲ್ ಟ್ರ್ಯಾಕಿಂಗ್ ಮತ್ತು ಮೆನು ರಚನೆ

ನಾನು ಇಡೀ ದಿನವನ್ನು MCP ಸರ್ವರ್‌ಗಳು, ಸ್ವಯಂಚಾಲಿತ ಇಮೇಲ್ ಟ್ರ್ಯಾಕಿಂಗ್ ಮತ್ತು ಸ್ಕೇಲೆಬಲ್ ಅಡ್ಮಿನ್ ಮೆನುಗಳನ್ನು ನಿರ್ಮಿಸಲು ಕಳೆದೆ.

ಈ ಕೆಲಸದಿಂದ ಕಲಿತ ಪ್ರಮುಖ ಪಾಠಗಳು ಇಲ್ಲಿವೆ.

𝗠𝗖𝗣 𝗦𝗲𝗿𝘃𝗲𝗿 𝗦𝗮𝗳𝗲𝘁𝘆

ನಾನು ಒಂದು ಸಾಮಾನ್ಯ MCP ಟೂಲ್‌ಬಾಕ್ಸ್ ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿದೆ ಮತ್ತು ಹಲವಾರು ಎಂಟರ್‌ಪ್ರೈಸ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಸರ್ವರ್‌ಗಳನ್ನು ನಿಯೋಜಿಸಿದೆ. ನಿಮ್ಮ ಸಿಸ್ಟಮ್‌ಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಬಲ್ಲ ಏಜೆಂಟ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುವಾಗ, ಈ ನಿಯಮಗಳನ್ನು ಅನುಸರಿಸಿ:

  • ಏಜೆಂಟ್‌ಗಳಿಗೆ 'read' ಟೂಲ್‌ಗಳನ್ನು ಮುಕ್ತವಾಗಿ ನೀಡಿ.
  • 'write' ಟೂಲ್‌ಗಳನ್ನು ಮಿತವಾಗಿ ನೀಡಿ.
  • ಪ್ರತಿಯೊಂದು 'write' ಕ್ರಿಯೆಯು ಮನುಷ್ಯನ ಅನುಮೋದನೆಯನ್ನು ಪಡೆಯುವ (human-gated) runbook ಮೂಲಕವೇ ನಡೆಯುವಂತೆ ಮಾಡಿ.
  • ನಿಮ್ಮ create-user ಟೂಲ್‌ಗಳಲ್ಲಿ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಹ್ಯಾಶ್ (hash) ಮಾಡಿ. ಎಂದಿಗೂ ಪ್ಲೇನ್‌ಟೆಕ್ಸ್ಟ್ (plaintext) ರೂಪದಲ್ಲಿ ಸಂಗ್ರಹಿಸಬೇಡಿ.
  • ಆಡಿಟ್ ಲಾಗ್‌ಗಳಿಗಾಗಿ ಸಾರ್ವಜನಿಕ UUIDಗಳನ್ನು ಬಳಸಿ. ಇಂಟರ್ನಲ್ ಡೇಟಾಬೇಸ್ ಐಡಿಗಳನ್ನು (internal database IDs) ಎಂದಿಗೂ ಬಹಿರಂಗಪಡಿಸಬೇಡಿ.
  • ಯೂಸರ್ ಕಾನ್ಟೆಕ್ಸ್ಟ್‌ಗಾಗಿ (user context) ಫಾಲ್‌ಬ್ಯಾಕ್ ಬಳಸಿ. ಏಜೆಂಟ್ HTTP ಅಥವಾ STDIO ಅನ್ನು ಬಳಸಬಹುದು. ನಿಮ್ಮ ಕೋಡ್ ಎರಡನ್ನೂ ನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.

𝗘𝗺𝗮𝗶𝗹 𝗧𝗿𝗮𝗰𝗸𝗶𝗻𝗴 𝗪𝗶𝘁𝗵𝗼𝘂𝘁 𝗠𝗮𝗻𝘂𝗮𝗹 𝗪𝗼𝗿𝗸

ಇಮೇಲ್ ಓಪನ್‌ಗಳು ಮತ್ತು ಕ್ಲಿಕ್‌ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಟ್ರ್ಯಾಕ್ ಮಾಡುವ ವ್ಯವಸ್ಥೆಯನ್ನು ನಾನು ನಿರ್ಮಿಸಿದೆ. ಪ್ರತಿ ಇಮೇಲ್‌ಗೆ ಟ್ರ್ಯಾಕಿಂಗ್ ಪಿಕ್ಸೆಲ್‌ಗಳನ್ನು (tracking pixels) ಸೇರಿಸಲು ಡೆವಲಪರ್‌ಗಳಿಗೆ ಹೇಳಬೇಡಿ. ಬದಲಾಗಿ, ಮೇಲ್-ಸೆಂಡಿಂಗ್ ಲಿಸನರ್ (mail-sending listener) ಬಳಸಿ.

  • ಲಿಸನರ್ ಸಂದೇಶವನ್ನು ಮಧ್ಯದಲ್ಲಿ ಹಿಡಿಯುತ್ತದೆ (intercepts).
  • ಇದು HTML ಗೆ ಟ್ರ್ಯಾಕಿಂಗ್ ಪಿಕ್ಸೆಲ್ ಅನ್ನು ಸೇರಿಸುತ್ತದೆ (injects).
  • ಇದು ಕ್ಲಿಕ್ ಟ್ರ್ಯಾಕಿಂಗ್‌ಗಾಗಿ ಎಲ್ಲಾ ಲಿಂಕ್‌ಗಳನ್ನು ಎನ್ಕ್ಯಾಪ್ಸ್ (wraps) ಮಾಡುತ್ತದೆ.
  • ಸುಲಭವಾದ ಸಂಬಂಧಕ್ಕಾಗಿ (correlation) ಇದು ಮೆಟಾಡೇಟಾ ಹ್ಯಾಶ್ ಅನ್ನು ಸೇರಿಸುತ್ತದೆ.

ಎರಡು ಪ್ರಮುಖ ಅಂಶಗಳು:

  • Mail::raw() ಅನ್ನು ತಪ್ಪಿಸಿ. ಇದು HTML ರಿರೈಟಿಂಗ್ (rewriting) ಹಾದಿಯನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತದೆ. ಟ್ರ್ಯಾಕಿಂಗ್ ಕೆಲಸ ಮಾಡುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಸರಿಯಾದ HTML Mailables ಬಳಸಿ.
  • ಟ್ರ್ಯಾಕಿಂಗ್ ಅನ್ನು ಡಿಫಾಲ್ಟ್ ಆಗಿ "on" ಗೆ ಹೊಂದಿಸಿ. ಬಳಕೆದಾರರು ಅದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕಾದಲ್ಲಿ, ಅವರು ಮರೆತುಬಿಡುತ್ತಾರೆ.

𝗦𝗰𝗮𝗹𝗮𝗯𝗹𝗲 𝗔𝗱𝗺𝗶𝗻 𝗠𝗲𝗻𝘂𝘀

ನೀವು ಹಲವಾರು ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಮೆನುಗಳನ್ನು ನಿರ್ವಹಿಸುವಾಗ, ಒಂದೇ ದೊಡ್ಡ ಫೈಲ್ ಅನ್ನು ಬಳಸಬೇಡಿ. ಪ್ರತಿ ಗುಂಪಿಗಾಗಿ ಸಣ್ಣ ಬಿಲ್ಡರ್ ಕ್ಲಾಸ್‌ಗಳನ್ನು (builder classes) ಬಳಸಿ.

  • ಪ್ರತಿ ಗುಂಪಿಗೆ ಒಂದು ಕ್ಲಾಸ್ ರಚಿಸಿ (ಉದಾಹರಣೆಗೆ, Settings, User Management).
  • ಪ್ರತಿ ಕ್ಲಾಸ್ ತನ್ನದೇ ಆದ ಐಟಂಗಳು ಮತ್ತು ಅಗತ್ಯವಿರುವ ಅನುಮತಿಗಳನ್ನು (permissions) ಘೋಷಿಸುತ್ತದೆ.
  • ಇದು ನಿಮ್ಮ ನ್ಯಾವಿಗೇಷನ್ ಅನ್ನು ಡೆಕ್ಲರೇಟಿವ್ (declarative) ಆಗಿಡುತ್ತದೆ.
  • ದೀರ್ಘ ಲೇಬಲ್‌ಗಳನ್ನು ಕಾಂಪೊನೆಂಟ್ ಒಳಗಡೆಯೇ ಕತ್ತರಿಸಿ (truncate), ಪ್ರತಿ ಐಟಂ ಆಧಾರದ ಮೇಲೆ ಮಾಡಬೇಡಿ.
  • ಟೂಲ್‌ಗಳನ್ನು ಎರಡು ಪರಿಶೀಲನೆಗಳ ಮೂಲಕ ನಿಯಂತ್ರಿಸಿ: ಬಳಕೆದಾರರ ಅನುಮತಿಗಳು ಮತ್ತು ನಿರ್ದಿಷ್ಟ ಅಪ್ಲಿಕೇಶನ್ ಎಡಿಷನ್.

𝗧𝗵𝗲 𝗕𝗶𝗴𝗴𝗲𝗿 𝗣𝗶𝗰𝘁𝘂𝗿𝗲

ಸುರಕ್ಷತಾ ಜಾಲವನ್ನು (safety net) ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸುವುದು ಗುರಿಯಾಗಿದೆ.

ಒಂದು ಡಯಾಗ್ನೋಸ್ಟಿಕ್ ಟೂಲ್ ಉಪಯುಕ್ತವಾಗಿದ್ದರೆ, ಅದನ್ನು ಡಿಫಾಲ್ಟ್ ಆಗಿ ಆನ್ ಮಾಡಿ. ನೀವು ಅದನ್ನು ಆನ್ ಮಾಡಲು ನೆನಪಿಟ್ಟುಕೊಳ್ಳಬೇಕಾದಲ್ಲಿ, ರಾತ್ರಿ 2 ಗಂಟೆಗೆ ಸಿಸ್ಟಮ್ ಫೇಲ್ ಆದಾಗ ಅದು ನಿಮ್ಮ ಬಳಿ ಇರುವುದಿಲ್ಲ. ನಿಮ್ಮ ಪಾಠಗಳನ್ನು ನಿಮ್ಮ ಟೂಲ್‌ಗಳಲ್ಲೇ ಅಳವಡಿಸಿ (encode), ಇದರಿಂದ ನೀವು ಅವುಗಳನ್ನು ಮತ್ತೆ ಕಲಿಯಬೇಕಾಗಿಲ್ಲ.

ಮೂಲ: https://dev.to/nasrulhazim/dev-log-2026-06-19-mcp-servers-everywhere-email-that-tracks-itself-and-menus-that-behave-19il