ಒಬ್ಬ ಡೆವಲಪರ್ ಗೈಡ್, ವರ್ಕ್‌ಸ್ಟೇಷನ್‌ನಲ್ಲಿ Model Context Protocol (MCP) ಸರ್ವರ್ ಅನ್ನು ರನ್ ಮಾಡುವುದು ಮತ್ತು ಅದನ್ನು ಹಂಚಿಕೆಯಾದ (shared) HTTP ಸೇವೆಯಾಗಿ ಹೋಸ್ಟ್ ಮಾಡುವುದುget ನಡುವಿನ ಲಾಭ ಮತ್ತು ನಷ್ಟಗಳ ವ್ಯತ್ಯಾಸಗಳನ್ನು ವಿವರಿಸುತ್ತದೆ. ಈ ಆಯ್ಕೆಯು ವಿಳಂಬ (latency), ಕ್ರೆಡೆನ್ಶಿಯಲ್‌ಗಳ ಸೋರಿಕೆ ಮತ್ತು ಒಂದು ತಂಡವು AI-ಚಾಲಿತ ಡೇಟಾ-ಅಕ್ಸೆಸ್ ಲೇಯರ್ ಅನ್ನು ಎಷ್ಟು ಸುಲಭವಾಗಿ ವಿಸ್ತರಿಸಬಹುದು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ ಎಂದು ಲೇಖಕರು ವಾದಿಸುತ್ತಾರೆ.

ಈ ನಿರ್ಧಾರ ಏಕೆ ಮುಖ್ಯ?

Claude ಅಥವಾ Cursor ನಂತಹ ಲಾರ್ಜ್-ಲ್ಯಾಂಗ್ವೇಜ್-ಮಾಡೆಲ್ ಅಸಿಸ್ಟೆಂಟ್‌ಗಳು ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನೋಡದೆಯೇ ಡೇಟಾಬೇಸ್ ವಿರುದ್ಧ SQL ಕಮಾಂಡ್‌ಗಳನ್ನು ರನ್ ಮಾಡಲು MCP ಒಂದು ಸೇತುವೆಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಅಸಿಸ್ಟೆಂಟ್ ಒಂದು ಟೂಲ್ ಅನ್ನು ಕರೆಯುತ್ತದೆ, ಆ ಟೂಲ್ ವಿನಂತಿಯನ್ನು MCP ಸರ್ವರ್‌ಗೆ ವರ್ಗಾಯಿಸುತ್ತದೆ ಮತ್ತು ಸರ್ವರ್ ಕ್ವೇರಿಯನ್ನು ರನ್ ಮಾಡುತ್ತದೆ. ಸರ್ವರ್ ಡೆವಲಪರ್‌ನ ಲ್ಯಾಪ್‌ಟಾಪ್‌ನಲ್ಲಿ ಇದ್ದರೆ, ರೌಂಡ್-ಟ್ರಿಪ್ ಪ್ರಕ್ರಿಯೆಯು ಪ್ರಾಯೋಗಿಕವಾಗಿ ಒಂದು ಲೋಕಲ್ ಫಂಕ್ಷನ್ ಕಾಲ್ ಆಗಿರುತ್ತದೆ. ಒಂದು ವೇಳೆ ಅದು ಕೇಂದ್ರ ಹೋಸ್ಟ್‌ನಲ್ಲಿ ಇದ್ದರೆ, ಪ್ರತಿಯೊಂದು ವಿನಂತಿಯು ನೆಟ್‌ವರ್ಕ್ ಮೂಲಕ ಹಾದುಹೋಗುತ್ತದೆ ಮತ್ತು ಹೋಸ್ಟ್‌ನ ಅಥೆಂಟಿಕೇಶನ್ ಹಾಗೂ ಲಾಗಿಂಗ್ ಕಾರ್ಯವಿಧಾನಗಳಿಗೆ ಒಳಪಟ್ಟಿರುತ್ತದೆ. ಏಕ-ಡೆವಲಪರ್ ಪ್ರೊಟೊಟೈಪ್‌ನಿಂದ ಪ್ರೊಡಕ್ಷನ್ ಪರಿಸರಕ್ಕೆ ಬದಲಾಗುವ ತಂಡಗಳು, ತಮ್ಮ ಭದ್ರತಾ ಸ್ಥಿತಿ, ಕಾರ್ಯಕ್ಷಮತೆಯ ನಿರೀಕ್ಷೆಗಳು ಮತ್ತು ಕಾರ್ಯಾಚರಣೆಯ ಹೊರೆಗೆ ಯಾವ ಮಾದರಿಯು ಸೂಕ್ತವಾಗಿದೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಬೇಕಾಗುತ್ತದೆ.

ಎರಡು ನಿಯೋಜನಾ ಮಾದರಿಗಳು (Deployment models)

ಲೋಕಲ್ (stdio)

ಕ್ಲೈಂಟ್ MCP ಸರ್ವರ್ ಅನ್ನು ಚೈಲ್ಡ್ ಪ್ರೊಸೆಸ್ ಆಗಿ ಪ್ರಾರಂಭಿಸುತ್ತದೆ ಮತ್ತು ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಇನ್‌ಪುಟ್ / ಔಟ್‌ಪುಟ್ ಮೂಲಕ ಅದರೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುತ್ತದೆ. ಇಲ್ಲಿ ಯಾವುದೇ ನೆಟ್‌ವರ್ಕ್ ಸ್ಟ್ಯಾಕ್ ಒಳಗೊಂಡಿರುವುದಿಲ್ಲ.

  • ಇವುಗಳಿಗೆ ಸೂಕ್ತವಾಗಿದೆ: ವೈಯಕ್ತಿಕ ಡೆವಲಪರ್‌ಗಳು, ತ್ವರಿತ ಪ್ರಯೋಗಗಳು ಮತ್ತು ಲೋಕಲ್-ಮಾತ್ರದ ಟೆಸ್ಟ್ ಡೇಟಾಬೇಸ್‌ಗಳಿಗೆ.
  • ಅನುಕೂಲಗಳು: ವಿಳಂಬ (latency) ಬಹುತೇಕ ಶೂನ್ಯವಾಗಿರುತ್ತದೆ; ಪ್ರೊಸೆಸ್ ಬಳಕೆದಾರರ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಅನ್ನು ಬಳಸಿಕೊಳ್ಳುತ್ತದೆ, ಆದ್ದರಿಂದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಎಂದಿಗೂ ಯಂತ್ರವನ್ನು ಬಿಟ್ಟು ಹೊರಗೆ ಹೋಗುವುದಿಲ್ಲ.
  • ಅನಾನುಕೂಲಗಳು: ಪ್ರತಿಯೊಬ್ಬ ಬಳಕೆದಾರರು ತಮ್ಮದೇ ಆದ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅಥವಾ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಬೇಕಾಗುತ್ತದೆ; ಯಾವುದೇ ಕೇಂದ್ರ ಆಡಿಟ್ ಟ್ರೈಲ್ ಇರುವುದಿಲ್ಲ; ಅನೇಕ ಬಳಕೆದಾರರಿಗೆ ವಿಸ್ತರಿಸಲು ಪ್ರತಿಯೊಂದು ವರ್ಕ್‌ಸ್ಟೇಷನ್‌ನಲ್ಲಿ ಸೆಟಪ್ ಅನ್ನು ಪುನರಾವರ್ತಿಸಬೇಕಾಗುತ್ತದೆ.

ರಿಮೋಟ್ (HTTP)

ಸರ್ವರ್ HTTP ಮೂಲಕ ತಲುಪಬಹುದಾದ ಹೋಸ್ಟ್‌ನಲ್ಲಿ ನಿರಂತರವಾಗಿ ಚಲಿಸುತ್ತದೆ. ಕ್ಲೈಂಟ್‌ಗಳು ಸಾಮಾನ್ಯವಾಗಿ OAuth-ಶೈಲಿಯ ಫ್ಲೋ ಮೂಲಕ ಅಥೆಂಟಿಕೇಟ್ ಆಗುತ್ತವೆ ಮತ್ತು ಸುಪರಿಚಿತ ಎಂಡ್‌ಪಾಯಿಂಟ್‌ಗೆ ವಿನಂತಿಗಳನ್ನು ಕಳುಹಿಸುತ್ತವೆ.

  • ಇವುಗಳಿಗೆ ಸೂಕ್ತವಾಗಿದೆ: ತಂಡಗಳು, CI ಪೈಪ್‌ಲೈನ್‌ಗಳು ಮತ್ತು ಹಲವಾರು ಜನರು ಅಥವಾ ಸೇವೆಗಳು ಪ್ರವೇಶಿಸಬೇಕಾದ ಪ್ರೊಡಕ್ಷನ್ ಡೇಟಾಕ್ಕೆ.
  • ಅನುಕೂಲಗಳು: ಆಡಿಟ್ ಲಾಗ್‌ಗಳು, ರೋಲ್-ಆಧಾರಿತ ಪ್ರವೇಶ ನಿಯಂತ್ರಣ (RBAC) ಮತ್ತು ಕನೆಕ್ಷನ್ ಪೂಲಿಂಗ್‌ಗೆ ಒಂದೇ ಕೇಂದ್ರ ಬಿಂದು ಲಭ್ಯವಿರುತ್ತದೆ; ಕ್ರೆಡೆನ್ಶಿಯಲ್‌ಗಳನ್ನು ನಿಯಂತ್ರಿತ ವಾಲ್ಟ್‌ನಲ್ಲಿ (vault) ಒಮ್ಮೆ ಮಾತ್ರ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ.
  • ಅನಾನುಕೂಲಗಳು: ಹೆಚ್ಚುವರಿ ಮೂಲಸೌಕರ್ಯವನ್ನು ಸಿದ್ಧಪಡಿಸಬೇಕಾಗುತ್ತದೆ ಮತ್ತು ನಿರ್ವಹಿಸಬೇಕಾಗುತ್ತದೆ; ನೆಟ್‌ವರ್ಕ್ ವಿಳಂಬವು ಪ್ರತಿ ರೌಂಡ್-ಟ್ರಿಪ್‌ಗೆ ಕೆಲವು ಮಿಲಿಸೆಕೆಂಡ್‌ಗಳನ್ನು ಸೇರಿಸುತ್ತದೆ.

ಮುಖಾಮುಖಿ ಹೋಲಿಕೆ

ಅಂಶ ಲೋಕಲ್ ರಿಮೋಟ್
ಉದ್ದೇಶಿತ ಬಳಕೆ ಒಬ್ಬ ಬಳಕೆದಾರ ಅನೇಕ ಬಳಕೆದಾರರು
ಅಥೆಂಟಿಕೇಶನ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್‌ಗಳು ಅಥವಾ ಲೋಕಲ್ ಕಾನ್ಫಿಗರೇಶನ್ OAuth-ಅನುಸರಣೀಯ ಟೋಕನ್ ಫ್ಲೋ
ಆಡಿಟಿಂಗ್ ಅಂತರ್ನಿರ್ಮಿತವಾಗಿಲ್ಲ ಕೇಂದ್ರ ಲಾಗ್ ಪ್ರತಿ ವಿನಂತಿಯನ್ನು ದಾಖಲಿಸುತ್ತದೆ
ಸೆಟಪ್ ಸಂಕೀರ್ಣತೆ ಕನಿಷ್ಠ ಸರ್ವರ್ ಪ್ರೊವಿಷನಿಂಗ್, TLS, ಟೋಕನ್ ನಿರ್ವಹಣೆ ಅಗತ್ಯ
ವಿಳಂಬ (Latency) ಶೂನ್ಯಕ್ಕೆ ಹತ್ತಿರ ನೆಟ್‌ವರ್ಕ್ ಹॉप ಕಾರಣದಿಂದ ಹೆಚ್ಚು
ಕ್ರೆಡೆನ್ಶಿಯಲ್ ಸೋರಿಕೆ ಡೆವಲಪರ್‌ನ ಯಂತ್ರಕ್ಕೆ ಸೀಮಿತ ಕೇಂದ್ರೀಕೃತವಾಗಿದೆ, ಆದರೆ ಉಲ್ಲಂಘನೆಯಿಂದ ರಕ್ಷಿಸಬೇಕಾಗುತ್ತದೆ

ಒಂದು ಪ್ರಾಯೋಗಿಕ ಹೈಬ್ರಿಡ್ ವಿಧಾನ

ಹೆಚ್ಚಿನ ಸಂಸ್ಥೆಗಳು ಕೇವಲ ಒಂದು ಮಾದರಿಯನ್ನು ಆರಿಸಿ ಎಂದಿಗೂ ಅದನ್ನೇ ಅನುಸರಿಸುವುದಿಲ್ಲ. ಈ ಗೈಡ್ ಹಂತ ಹಂತವಾಗಿ ಜಾರಿಗೆ ತರುವ ವಿಧಾನವನ್ನು ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ:

  1. ಸ್ಥಳೀಯವಾಗಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಿ – ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ಡೇಟಾಬೇಸ್ ವಿರುದ್ಧ ಲೋಕಲ್ MCP ಸರ್ವರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ. ಇದರ ವೇಗವು ತ್ವರಿತ ಬದಲಾವಣೆಗಳಿಗೆ ಉತ್ತೇಜನ ನೀಡುತ್ತದೆ ಮತ್ತು ಸೀಕ್ರೆಟ್‌ಗಳನ್ನು ವರ್ಷನ್ ಕಂಟ್ರೋಲ್‌ನಿಂದ ದೂರವಿಡುತ್ತದೆ.
  2. ರಿಮೋಟ್‌ಗೆ ಬದಲಿಸಿ – ಕೋಡ್ ಬೇಸ್ ಅನ್ನು ಹಂಚಿಕೊಂಡ ನಂತರ, ಸರ್ವರ್ ಅನ್ನು ಕೇಂದ್ರ ಹೋಸ್ಟ್‌ಗೆ ವರ್ಗಾಯಿಸಿ. ಕ್ಲೈಂಟ್ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು HTTP ಎಂಡ್‌ಪಾಯಿಂಟ್‌ಗೆ ಬದಲಾಯಿಸಿ ಮತ್ತು OAuth ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ.
  3. ಪ್ರೊಡಕ್ಷನ್ ಅನ್ನು ರಕ್ಷಿಸಿ – ಪ್ರೊಡಕ್ಷನ್ ಡೇಟಾಬೇಸ್‌ಗಳನ್ನು ರಿಮೋಟ್, ಆಡಿಟಬಲ್ ಗೇಟ್‌ವೇದಿನ ಹಿಂದೆ ಇರಿಸಿ. AI ಅಸಿಸ್ಟೆಂಟ್‌ಗೆ ಕೇವಲ 'ರೀಡ್-ಓನ್ಲಿ' (read-only) ಪಾತ್ರಗಳನ್ನು ನೀಡಿ ಮತ್ತು ಪ್ರೊಡಕ್ಷನ್ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ರಿಮೋಟ್ ಸರ್ವರ್ ಪ್ರವೇಶಿಸಬಹುದಾದ ಸೀಕ್ರೆಟ್ಸ್ ಮ್ಯಾನೇಜರ್‌ನಲ್ಲಿ ಮಾತ್ರ ಸಂಗ್ರಹಿಸಿ.

ತಪ್ಪಿಸಬೇಕಾದ ಸಾಮಾನ್ಯ ತಪ್ಪುಗಳು

  • ಪ್ರೊಡಕ್ಷನ್ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಡೆವಲಪರ್‌ನ .env ಫೈಲ್ ಅಥವಾ ಇತರ ಲೋಕಲ್ ಕಾನ್ಫಿಗರೇಶನ್‌ಗಳಲ್ಲಿ ಸಂಗ್ರಹಿಸುವುದು. ಯಂತ್ರವು ಅಸುರಕ್ಷಿತವಾದರೆ, ಡೇಟಾಬೇಸ್ ಕೂಡ ಅಪಾಯಕ್ಕೆ ಸಿಲುಕುತ್ತದೆ.
  • OAuth ಅಥವಾ ಸಮಾನವಾದ ಟೋಕನ್ ವ್ಯವಸ್ಥೆಯಿಲ್ಲದೆ ರಿಮೋಟ್ MCP ಸರ್ವರ್ ಅನ್ನು ನಿಯೋಜಿಸುವುದು. ಪ್ಲೇನ್-ಟೆಕ್ಸ್ಟ್ ಬೇಸಿಕ್ ಆಥೆಂಟಿಕೇಶನ್ ಅಥವಾ ಸ್ಟ್ಯಾಟಿಕ್ API ಕೀಗಳು ಸುಲಭವಾಗಿ ಸೋರಿಕೆಯಾಗಬಹುದು.
  • ಪ್ರೊಡಕ್ಷನ್ ಟೇಬಲ್‌ಗಳ ಮೇಲೆ AI ಅಸಿಸ್ಟೆಂಟ್‌ಗೆ ಬರೆಯುವ ಅನುಮತಿಗಳನ್ನು (write permissions) ನೀಡುವುದು. ಅಕಸ್ಮಾತ್ ಆಗಿ ಮಾಡುವ DELETE ಸ್ಟೇಟ್‌ಮೆಂಟ್‌ಗಳು ಡೇಟಾ ನಷ್ಟಕ್ಕೆ ಕಾರಣವಾಗಬಹುದು; ರೀಡ್-ಓನ್ಲಿ ಪಾತ್ರವು ಆ ಅಪಾಯವನ್ನು ತಪ್ಪಿಸುತ್ತದೆ.

ಲೋಕಲ್ ಯಾವಾಗ ಇಂದಿಗೂ ಸೂಕ್ತವಾಗುತ್ತದೆ

ಒಂದು ತಂಡದ ಕೆಲಸವು ಎಂದಿಗೂ ಒಂದೇ ಯಂತ್ರದಿಂದ ಹೊರಬರದಿದ್ದರೆ—ಉದಾಹರಣೆಗೆ ವೈಯಕ್ತಿಕ ಲ್ಯಾಪ್‌ಟಾಪ್‌ನಲ್ಲಿ ಪ್ರೊಟೊಟೈಪ್ ಮಾಡುವ ಒಬ್ಬನೇ ಡೇಟಾ ಸೈಂಟಿಸ್ಟ್—ಲೋಕಲ್ ನಿಯೋಜನೆಯು ಸರಳ ಮತ್ತು ವೇಗವಾದ ಆಯ್ಕೆಯಾಗಿ ಉಳಿಯುತ್ತದೆ. ಅಲ್ಪಾವಧಿಯ ಪ್ರಯೋಗಕ್ಕಾಗಿ TLS ಸರ್ಟಿಫಿಕೇಟ್‌ಗಳು, ಟೋಕನ್ ವಿತರಣೆ ಮತ್ತು ಲಾಗಿಂಗ್ ಪೈಪ್‌ಲೈನ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡುವ ಹೊರೆ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ.

ಅಂತಿಮ ತೀರ್ಮಾನ

ನಿಮಗೆ ಅತಿ ಹೆಚ್ಚಿನ ವೇಗ ಬೇಕಾಗಿದ್ದರೆ ಮತ್ತು ನೀವು ಏಕೈಕ ಬಳಕೆದಾರರಾಗಿದ್ದರೆ, ಸ್ಥಳೀಯ MCP ಸರ್ವರ್ ಅತ್ಯಂತ ಸರಳವಾದ ಆಯ್ಕೆಯಾಗಿದೆ. ನಿಮಗೆ ಆಡಿಟಿಂಗ್ ಸಾಮರ್ಥ್ಯ, ಹಂಚಿಕೆಯ ಪ್ರವೇಶ ಅಥವಾ ಪ್ರೊಡಕ್ಷನ್-ಗ್ರೇಡ್ ಭದ್ರತೆಯ ಅಗತ್ಯವಿದ್ದರೆ, ರಿಮೋಟ್ HTTP ಸರ್ವರ್ ಒಂದೇ ಕಾರ್ಯಸಾಧ್ಯವಾದ ಮಾರ್ಗವಾಗಿದೆ. ಹೆಚ್ಚಿನ ತಂಡಗಳು ಅನುಕೂಲಕ್ಕಾಗಿ ಸ್ಥಳೀಯವಾಗಿ ಪ್ರಾರಂಭಿಸುತ್ತವೆ, ನಂತರ ಪ್ರೊಡಕ್ಷನ್ ಡೇಟಾವನ್ನು ಬಳಸುವ ಮೊದಲು ರಿಮೋಟ್, ಟೋಕನ್-ರಕ್ಷಿತ ಗೇಟ್‌ವೇಗೆ ಪರಿವರ್ತನೆಗೊಳ್ಳುತ್ತವೆ. ನಿಮ್ಮ ನಿಯೋಜನಾ ಮಾದರಿಯನ್ನು ಯೋಜನೆಯ ಹಂತ ಮತ್ತು ನೀವು ಬಳಸುವ ಡೇಟಾದ ಅಪಾಯದ ಸ್ವರೂಪಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಹೊಂದಿಸಿ.