अधिकृत लॉगिन परिणाम लौटाना
SDK इंस्टॉल करें:
pnpm add mcp-auth-webAPI परिवेश (engineUrl पाथ के बिना मूल पता है):
- परीक्षण: https://aim-api-test.proton-system.com
- प्रोडक्शन: https://aim-api.proton-system.com
अनुमोदन वापसी का पूरा URL: https://xxx.com/openapi/v1/mcp/authorization/callback
SDK पाथ अपने आप जोड़ता है।
लॉगिन सफल होने के बाद क्रेडेंशियल लौटाएँ:
import { createMcpAuthClient } from 'mcp-auth-web'
const mcpAuth = createMcpAuthClient({
engineUrl: 'https://aim-api-test.proton-system.com',
})
mcpAuth.complete({
Authorization: `Bearer ${token}`,
})लॉगिन विफल होने या उपयोगकर्ता के रद्द करने पर:
mcpAuth.fail({ code, message })
mcpAuth.cancel()mcp-auth-web@0.3.1 से getMcpAuthErrorMessage(error) SDK द्वारा बनाए रखे गए सुरक्षित डिफ़ॉल्ट चीनी संदेश देता है। UI इन्हें दिखाता है; अनुवाद या बदलाव के लिए त्रुटि कोड इस्तेमाल करें। complete(), fail() और cancel() की त्रुटियाँ पकड़ें। complete() के catch में बिना शर्त fail() न बुलाएँ और मूल त्रुटियों से क्रेडेंशियल या प्राधिकरण URL न दिखाएँ।
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 लौटाए, तो वर्तमान पेज में प्राधिकरण लौटाने का कोई उपलब्ध तरीका नहीं है:
if (!mcpAuth.isAvailable()) {
message.error('वर्तमान परिवेश प्राधिकरण परिणाम लौटाने का समर्थन नहीं करता')
}जाँच के लिए App से प्राधिकरण शुरू करके लॉगिन पूरा करें। App में वापस आकर “प्राधिकृत” दिखना सफलता है। प्रोडक्शन में लॉगिन पेज और Engine को डिवाइस से सुलभ HTTPS और मान्य प्रमाणपत्र चाहिए। क्रेडेंशियल या प्राधिकरण URL लॉग न करें।
Tool के सामान्य जोखिम एनोटेशन
रीड Tool:
annotations: {
readOnlyHint: true
}राइट Tool:
annotations: {
destructiveHint: true
}Tool के प्रकार
1. सूची Tool
जब कोई Tool उम्मीदवारों की सूची लौटाता है और उपयोगकर्ता का चुना हुआ मान किसी दूसरे Tool पैरामीटर में भरा जाता है, तो outputSchema के रूट में यह ऑब्जेक्ट जोड़ें:
outputSchema: {
type: "object",
properties: {...}, // वैकल्पिक
"x-prerequisiteCandidate": {
itemsPath: "data",
valuePath: "id",
labelPath: "name"
}
}तीनों फ़ील्ड का अर्थ:
itemsPath: Tool के परिणाम में उम्मीदवारों की ऐरे कहाँ है।valuePath: हर उम्मीदवार का कौन-सा फ़ील्ड अंतिम मान बनेगा।labelPath: हर उम्मीदवार का कौन-सा फ़ील्ड उपयोगकर्ता को दिखेगा।
उदाहरण के लिए Tool यह लौटाता है:
{
"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से मेल खानी चाहिए।