मुख्य सामग्री पर जाएँ

डेवलपर दस्तावेज़

MCP Tool इंटीग्रेशन अनुबंध

MCP Tools के प्राधिकरण परिणाम, जोखिम एनोटेशन, उम्मीदवार फ़ील्ड मैपिंग और लॉन्च जाँच की वर्तमान शर्तें।

अधिकृत लॉगिन परिणाम लौटाना

SDK इंस्टॉल करें:

sh
pnpm add mcp-auth-web

API परिवेश (engineUrl पाथ के बिना मूल पता है):

अनुमोदन वापसी का पूरा URL: https://xxx.com/openapi/v1/mcp/authorization/callback

SDK पाथ अपने आप जोड़ता है।

लॉगिन सफल होने के बाद क्रेडेंशियल लौटाएँ:

ts
import { createMcpAuthClient } from 'mcp-auth-web'

const mcpAuth = createMcpAuthClient({
  engineUrl: 'https://aim-api-test.proton-system.com',
})

mcpAuth.complete({
  Authorization: `Bearer ${token}`,
})

लॉगिन विफल होने या उपयोगकर्ता के रद्द करने पर:

ts
mcpAuth.fail({ code, message })
mcpAuth.cancel()

mcp-auth-web@0.3.1 से getMcpAuthErrorMessage(error) SDK द्वारा बनाए रखे गए सुरक्षित डिफ़ॉल्ट चीनी संदेश देता है। UI इन्हें दिखाता है; अनुवाद या बदलाव के लिए त्रुटि कोड इस्तेमाल करें। complete(), fail() और cancel() की त्रुटियाँ पकड़ें। complete() के catch में बिना शर्त fail() न बुलाएँ और मूल त्रुटियों से क्रेडेंशियल या प्राधिकरण URL न दिखाएँ।

ts
import { getMcpAuthErrorMessage } from 'mcp-auth-web'

try {
  mcpAuth.complete({ Authorization: `Bearer ${token}` })
} catch (error) {
  message.error(getMcpAuthErrorMessage(error))
}

engineUrl प्लेटफ़ॉर्म द्वारा दिया गया Engine पता है। complete सीधे MCP द्वारा उपयोग किए जाने वाले क्रेडेंशियल Header लेता है। SDK Authorization के Bearer JWT से exp पढ़कर अपने आप expiresAt बनाता है, इसलिए समयसीमा अलग से देने की आवश्यकता नहीं है।

SDK HTTPS callback या मौजूदा App प्राधिकरण विंडो को अपने आप चुनता है। mcp-auth-web@0.3.0 में complete का इनपुट फ़ॉर्मैट बदला है; अपग्रेड करते समय headers wrapper और हाथ से दिया गया expiresAt हटा दें। engineUrl न देने पर मौजूदा App प्राधिकरण विंडो का उपयोग जारी रहता है।

यदि मेथड false लौटाए, तो वर्तमान पेज में प्राधिकरण लौटाने का कोई उपलब्ध तरीका नहीं है:

ts
if (!mcpAuth.isAvailable()) {
  message.error('वर्तमान परिवेश प्राधिकरण परिणाम लौटाने का समर्थन नहीं करता')
}

जाँच के लिए App से प्राधिकरण शुरू करके लॉगिन पूरा करें। App में वापस आकर “प्राधिकृत” दिखना सफलता है। प्रोडक्शन में लॉगिन पेज और Engine को डिवाइस से सुलभ HTTPS और मान्य प्रमाणपत्र चाहिए। क्रेडेंशियल या प्राधिकरण URL लॉग न करें।

Tool के सामान्य जोखिम एनोटेशन

रीड Tool:

ts
annotations: {
  readOnlyHint: true
}

राइट Tool:

ts
annotations: {
  destructiveHint: true
}

Tool के प्रकार

1. सूची Tool

जब कोई Tool उम्मीदवारों की सूची लौटाता है और उपयोगकर्ता का चुना हुआ मान किसी दूसरे Tool पैरामीटर में भरा जाता है, तो outputSchema के रूट में यह ऑब्जेक्ट जोड़ें:

ts
outputSchema: {
  type: "object",
  properties: {...}, // वैकल्पिक
  "x-prerequisiteCandidate": {
    itemsPath: "data",
    valuePath: "id",
    labelPath: "name"
  }
}

तीनों फ़ील्ड का अर्थ:

  • itemsPath: Tool के परिणाम में उम्मीदवारों की ऐरे कहाँ है।
  • valuePath: हर उम्मीदवार का कौन-सा फ़ील्ड अंतिम मान बनेगा।
  • labelPath: हर उम्मीदवार का कौन-सा फ़ील्ड उपयोगकर्ता को दिखेगा।

उदाहरण के लिए Tool यह लौटाता है:

json
{
  "data": [
    { "id": "1", "name": "स्टोर A" },
    { "id": "2", "name": "स्टोर B" }
  ]
}

तब:

  • itemsPath: "data" का अर्थ है कि उम्मीदवार सूची परिणाम की data ऐरे है।
  • valuePath: "id" का अर्थ है कि चुने गए आइटम का id लक्ष्य Tool में भरा जाएगा।
  • labelPath: "name" का अर्थ है कि चयन कार्ड आइटम का name दिखाएगा।

जाँच सूची

  • सूची Tools में x-prerequisiteCandidate जोड़ें।
  • विवरण या राइट Tools में x-prerequisiteCandidate न जोड़ें।
  • रीड Tools में readOnlyHint: true जोड़ें।
  • राइट Tools में destructiveHint: true जोड़ें।
  • सूची खाली हो तब भी {"data":[]} जैसी स्थिर संरचना लौटाएँ।
  • Tool की वास्तविक परिणाम संरचना x-prerequisiteCandidate से मेल खानी चाहिए।