Lazy Loading MCP Tools: ಇದನ್ನು ಯಾರು ಬೆಂಬಲಿಸುತ್ತಾರೆ ಮತ್ತು ಹೇಗೆ

ಹೆಚ್ಚಿನ ಜನರು MCP ಸರ್ವರ್ ವೆಚ್ಚಗಳು ಕೋಡ್‌ನಲ್ಲೇ ಇರುತ್ತವೆ ಎಂದು ಭಾವಿಸುತ್ತಾರೆ. ಅವರು ತಪ್ಪಾಗಿದ್ದಾರೆ.

ನೀವು ಒಂದು MCP ಸರ್ವರ್ ಅನ್ನು ನಿರ್ಮಿಸಿದರೆ, ನೀವು ಎರಡು ರೀತಿಯ ಟೋಕನ್ ವೆಚ್ಚಗಳನ್ನು ಎದುರಿಸುತ್ತೀರಿ:

  • ಸ್ಥಿರ ವೆಚ್ಚ (Fixed cost): ಪ್ರತಿ ಹಂತದಲ್ಲೂ (every turn) context ಗೆ ಲೋಡ್ ಆಗುವ ಟೂಲ್ ವ್ಯಾಖ್ಯಾನಗಳು (Tool definitions).
  • ಬದಲಾಗುವ ವೆಚ್ಚ (Variable cost): ಒಂದು ಟೂಲ್ ನೀಡುವ ಪ್ರತಿಕ್ರಿಯೆಯ (response) ಗಾತ್ರ.

ನೀವು ಬದಲಾಗುವ ವೆಚ್ಚವನ್ನು ನಿಯಂತ್ರಿಸಬಹುದು. ನೀವು ಫಲಿತಾಂಶಗಳನ್ನು ಪೇಜಿನೇಟ್ (paginate) ಮಾಡಬಹುದು ಅಥವಾ ಔಟ್‌ಪುಟ್ ಗಾತ್ರವನ್ನು ಮಿತಿಗೊಳಿಸಬಹುದು.

ನೀವು ಸ್ಥಿರ ವೆಚ್ಚವನ್ನು ನಿಯಂತ್ರಿಸಲಾಗುವುದಿಲ್ಲ. ಅದು ಹೋಸ್ಟ್‌ನ (ಕ್ಲೈಂಟ್) ಕೆಲಸವಾಗಿದೆ.

ನಿಮ್ಮ ಬಳಿ ಅನೇಕ ಟೂಲ್‌ಗಳಿರುವ ಹತ್ತು ಸರ್ವರ್‌ಗಳಿದ್ದರೆ, ಮಾಡೆಲ್ ನಿಮ್ಮ ಮೊದಲ ಸಂದೇಶವನ್ನು ಓದುವ ಮೊದಲೇ ನೀವು 40,000 ಟೋಕನ್‌ಗಳನ್ನು ವ್ಯರ್ಥ ಮಾಡಬಹುದು. ಏಕೆಂದರೆ ಹೋಸ್ಟ್ ಪ್ರತಿಯೊಂದು ಟೂಲ್ ವ್ಯಾಖ್ಯಾನವನ್ನು ಮೊದಲೇ ಲೋಡ್ ಮಾಡುತ್ತದೆ.

ಇದಕ್ಕೆ ಪರಿಹಾರವೇ lazy loading. ಇದರರ್ಥ ಹೋಸ್ಟ್ ಕೇವಲ ಒಂದು ಸಣ್ಣ ಸರ್ಚ್ ಟೂಲ್ ಅನ್ನು ಮಾತ್ರ ಲೋಡ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಇತರ ವ್ಯಾಖ್ಯಾನಗಳನ್ನು ಅಗತ್ಯವಿದ್ದಾಗ ಮಾತ್ರ ಪಡೆಯುತ್ತದೆ.

ಸಮಸ್ಯೆ ಏನೆಂದರೆ? ಹೆಚ್ಚಿನ ಕ್ಲೈಂಟ್‌ಗಳು ಇನ್ನೂ ಇದನ್ನು ಬೆಂಬಲಿಸುತ್ತಿಲ್ಲ.

Lazy loading ನ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿ:

  • Claude Code: ಇದನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಸರ್ಚ್ ಟೂಲ್ ಮೂಲಕ ಅಗತ್ಯವಿದ್ದಾಗ ಟೂಲ್‌ಗಳು ಲೋಡ್ ಆಗುತ್ತವೆ.
  • Cursor, Devin ಮತ್ತು ಇತರರು: ಇವರು ಇದನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. ಇವರು ಎಲ್ಲವನ್ನೂ ಏಕಕಾಲದಲ್ಲಿ ಲೋಡ್ ಮಾಡುತ್ತಾರೆ.

Lazy loading ಇಲ್ಲದ ಕ್ಲೈಂಟ್‌ನಲ್ಲಿ ನಿಮ್ಮ context ಅತಿಯಾಗಿ ಬೆಳೆಯುತ್ತಿದ್ದರೆ (bloating), ನಿಮ್ಮ ಮುಂದೆ ಎರಡು ಆಯ್ಕೆಗಳಿವೆ:

  1. Use a lazy proxy ನಿಮ್ಮ ಹೋಸ್ಟ್ ಅನ್ನು ನಿಮ್ಮ ನೈಜ ಸರ್ವರ್‌ಗಳ ಬದಲಿಗೆ ಪ್ರೊಕ್ಸಿ ಸರ್ವರ್‌ಗೆ (proxy server) ಕಳುಹಿಸಿ. ಪ್ರೊಕ್ಸಿ ಕೇವಲ ಎರಡು ಟೂಲ್‌ಗಳನ್ನು ಮಾತ್ರ ತೋರಿಸುತ್ತದೆ: search_tools ಮತ್ತು execute_tool. ಇದು ವಿನಂತಿಸಿದಾಗ ಮಾತ್ರ ನಿಮ್ಮ ನೈಜ ವ್ಯಾಖ್ಯಾನಗಳನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ. ಇದು ನಿಮ್ಮ context ಅನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಆದರೆ ಸೂಕ್ಷ್ಮ ಮಟ್ಟದ ಅನುಮತಿ ನಿಯಂತ್ರಣವನ್ನು (fine-grained permission control) ತೆಗೆದುಹಾಕುತ್ತದೆ.

  2. Use a router pattern ಒಂದು ಸರ್ವರ್ ತುಂಬಾ ದೊಡ್ಡದಾಗುತ್ತಿದ್ದರೆ, ಹೆಚ್ಚಿನ ಟೂಲ್‌ಗಳನ್ನು ಸೇರಿಸಬೇಡಿ. ಬದಲಾಗಿ, ಒಂದು operation parameter ಹೊಂದಿರುವ ಒಂದು ಟೂಲ್ ಅನ್ನು ರಚಿಸಿ. ಉದಾಹರಣೆಗೆ, "list", "get", ಅಥವಾ "search" ನಂತಹ ಕಮಾಂಡ್‌ಗಳೊಂದಿಗೆ ಒಂದು "docs" ಟೂಲ್ ಅನ್ನು ಬಳಸಿ. ಇದು ಹೋಸ್ಟ್ ಲೋಡ್ ಮಾಡಬೇಕಾದ schemas ಸಂಖ್ಯೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.

ಕಾರ್ಯತಂತ್ರದ ಸಾರಾಂಶ:

  • 6 ರಿಂದ 15 ಟೂಲ್‌ಗಳು: ಏನನ್ನೂ ಮಾಡಬೇಡಿ. ವೆಚ್ಚವು ಚಿಕ್ಕದಾಗಿರುವುದರಿಂದ ಚಿಂತಿಸುವ ಅಗತ್ಯವಿಲ್ಲ.
  • ಒಂದು ಸರ್ವರ್‌ನಲ್ಲಿ ಅನೇಕ ಟೂಲ್‌ಗಳು: Use a router pattern ಬಳಸಿ.
  • ಅನೇಕ ವಿಭಿನ್ನ ಸರ್ವರ್‌ಗಳು: Use a lazy proxy ಬಳಸಿ.

ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲು ಗಂಟೆಗಟ್ಟಲೆ ಸಮಯ ವ್ಯಯಿಸುವ ಮೊದಲು ನಿಮ್ಮ ಕ್ಲೈಂಟ್ ವರ್ತನೆಯನ್ನು ಪರಿಶೀಲಿಸಿ. ಪರಿಹಾರವು ನಿಮ್ಮ ಸರ್ವರ್‌ನಲ್ಲಿ ಇರಲಿಕ್ಕಿಲ್ಲ.

ಮೂಲ: https://dev.to/ismaestro/lazy-loading-mcp-tools-which-clients-support-it-and-how-4414

ಐಚ್ಛಿಕ ಕಲಿಕಾ ಸಮುದಾಯ: https://t.me/GyaanSetuAi