ThunderPhone 2.0 ഇപ്പോൾ ലൈവാണ്.സ്വയം തുടങ്ങാം — 2¢/മിനിറ്റ് മുതൽ.പ്രഖ്യാപനം വായിക്കുക

Connect tools & data

OAuth ഉപയോഗിച്ച് കണക്റ്റുചെയ്യുക

API കീ പങ്കിടാതെ MCP ക്ലയന്റുകൾക്കും ThunderPhone CLI-ക്കും അനുമതി നൽകുക.

OAuth ഉപയോഗിച്ച്, നിങ്ങൾ അംഗീകരിക്കുന്ന അനുമതികളോടെ ഒരു ആപ്പിന് ഒരു ThunderPhone ഓർഗനൈസേഷനുമായി ബന്ധിപ്പിക്കാൻ കഴിയും. ഡയറക്ടറി ക്ലയന്റുകൾ ഡിഫോൾട്ടായി OAuth ഉപയോഗിക്കണം. മാനുവലായി കോൺഫിഗർ ചെയ്ത Bearer ടോക്കൺ ആവശ്യമായ ക്ലയന്റുകൾക്കായി ഓർഗനൈസേഷൻ API കീകൾ ലഭ്യമായി തുടരും.

ഒരു കണക്ഷൻ അംഗീകരിക്കുക

നിങ്ങളുടെ MCP ക്ലയന്റിൽ കണക്ഷൻ ആരംഭിക്കുക. ThunderPhone-ൽ സൈൻ ഇൻ ചെയ്യുക, ആപ്പിന്റെ പേരും അഭ്യർഥിച്ച അനുമതികളും പരിശോധിക്കുക, ഒരു ഓർഗനൈസേഷൻ തിരഞ്ഞെടുക്കുക, തുടർന്ന് അംഗീകരിക്കുക തിരഞ്ഞെടുക്കുക. നിങ്ങൾ കണക്ഷൻ ആരംഭിച്ചിട്ടില്ലെങ്കിലോ ആപ്പിനെ വിശ്വസിക്കുന്നില്ലെങ്കിലോ നിരസിക്കുക തിരഞ്ഞെടുക്കുക. ആപ്പ് പേരുകൾ അവയുടെ ഡെവലപ്പർമാർ നൽകുന്നതാണ്; അവ ഒരു സ്ഥിരീകരണ ബാഡ്ജല്ല.

calls:read അഭ്യർഥിക്കുമ്പോൾ റെക്കോർഡിംഗുകളും ട്രാൻസ്ക്രിപ്റ്റുകളും ഉൾപ്പെടെ, വായനാ അനുമതികൾ പേരിട്ട ഡാറ്റ വെളിപ്പെടുത്തുന്നു. എഴുത്ത് അനുമതികൾക്ക് റിസോഴ്സുകൾ മാറ്റാനോ ഇല്ലാതാക്കാനോ കഴിയും; കോളുകൾ, കാമ്പെയ്‌നുകൾ, ഫോൺ വാങ്ങലുകൾ, ഡിപ്ലോയ്മെന്റുകൾ എന്നിവയ്ക്ക് ചെലവ് വരാനോ പ്രൊഡക്ഷനെ ബാധിക്കാനോ കഴിയും. നിങ്ങളുടെ ഓർഗനൈസേഷൻ റോൾ തുടർന്നും ബാധകമാണ്.

CLI കണക്ഷനായി, നിങ്ങളുടെ ടെർമിനലിൽ കാണിക്കുന്ന സ്ഥിരീകരണ ലിങ്ക് തുറക്കുക, എട്ട്-അക്ഷര കോഡ് താരതമ്യം ചെയ്യുക, നിങ്ങളുടെ ഓർഗനൈസേഷൻ തിരഞ്ഞെടുക്കുക, തുടർന്ന് അംഗീകരിക്കുക. ലിങ്ക് തുറക്കുന്നത് മാത്രം ആക്സസ് അനുവദിക്കില്ല. കോഡുകളുടെ കാലാവധി 15 മിനിറ്റിന് ശേഷം അവസാനിക്കും.

ഒരു ആപ്പ് വിച്ഛേദിക്കുക

ഡാഷ്ബോർഡിൽ ഓർഗനൈസേഷൻ → API കീകൾ → അംഗീകൃത ആപ്പുകൾ തുറന്ന് റദ്ദാക്കുക തിരഞ്ഞെടുക്കുക. ഇത് നിലവിലെ ഓർഗനൈസേഷനായി നിങ്ങൾ തിരഞ്ഞെടുത്ത അംഗീകാരം, അതിന്റെ ആക്സസ്, റിഫ്രെഷ് ടോക്കണുകൾ ഉൾപ്പെടെ, റദ്ദാക്കുന്നു. വീണ്ടും അംഗീകരിക്കണമെങ്കിൽ ആപ്പിൽ നിന്ന് വീണ്ടും കണക്റ്റ് ചെയ്യുക.

MCP ക്ലയന്റുകൾക്കായുള്ള ഡിസ്കവറി

സെർവർ URL https://api.thunderphone.com/v1/mcp ഉപയോഗിക്കുക. സാധുവായ ഓതന്റിക്കേഷൻ ഇല്ലാത്ത ഒരു അഭ്യർത്ഥനയ്ക്ക് ഇനിപ്പറയുന്നതോടെ 401 ലഭിക്കും:

WWW-Authenticate: Bearer resource_metadata="https://api.thunderphone.com/.well-known/oauth-protected-resource"

ആ ഡോക്യുമെന്റ് ഫെച്ച് ചെയ്യുക, തുടർന്ന് https://api.thunderphone.com/.well-known/oauth-authorization-server-ലെ ഓതറൈസേഷൻ സെർവറിന്റെ മെറ്റാഡാറ്റ ഫെച്ച് ചെയ്യുക. റിസോഴ്സ് മെറ്റാഡാറ്റ /.well-known/oauth-protected-resource/v1/mcp-ലും ലഭ്യമാണ്. എൻഡ്പോയിന്റുകൾ നിർമിക്കുന്നതിനുപകരം ലഭിക്കുന്ന എൻഡ്പോയിന്റുകൾ ഉപയോഗിക്കുക. റിസോഴ്സ് ഐഡന്റിഫയർ https://api.thunderphone.com/v1/mcp ആണ്.

സെർവർ S256 PKCE സഹിതമുള്ള ഓതറൈസേഷൻ കോഡ്, റൊട്ടേറ്റ് ചെയ്യുന്ന റിഫ്രഷ് ടോക്കണുകൾ, പബ്ലിക് ഡൈനാമിക് ക്ലയന്റ് രജിസ്ട്രേഷൻ, റിവൊക്കേഷൻ, ഡിവൈസ് ഓതറൈസേഷൻ ഗ്രാന്റ് എന്നിവ പിന്തുണയ്ക്കുന്നു. ക്ലയന്റ് സീക്രട്ടുകളോ ഇംപ്ലിസിറ്റ് ഗ്രാന്റുകളോ ഇല്ല. OpenID ഡിസ്കവറി /.well-known/openid-configuration-ലും ലഭ്യമാണ്; അതിൽ അതേ ഓതറൈസേഷൻ-സെർവർ ഫീൽഡുകൾക്കും പുറമെ subject_types_supported: ["public"], യൂസർഇൻഫോ എൻഡ്പോയിന്റ് എന്നിവയും ഉൾപ്പെടുന്നു. ID ടോക്കണുകളും Client ID Metadata Documents (CIMD)-ഉം പിന്തുണയ്ക്കുന്നില്ല.

ഒരു പബ്ലിക് ക്ലയന്റ് രജിസ്റ്റർ ചെയ്യുക

POST /v1/oauth/register-ലേക്ക് JSON അയയ്ക്കുക:

{
  "client_name": "My MCP client",
  "redirect_uris": ["http://127.0.0.1:8765/callback"],
  "token_endpoint_auth_method": "none",
  "grant_types": ["authorization_code", "refresh_token"],
  "response_types": ["code"]
}

ലഭിക്കുന്ന client_id സംരക്ഷിക്കുക. റീഡയറക്റ്റുകൾ HTTPS ഉപയോഗിക്കണം, അല്ലെങ്കിൽ 127.0.0.1-ലോ localhost-ലോ HTTP ഉപയോഗിക്കാം. പോർട്ടും പാഥും ഉൾപ്പെടെ കൃത്യമായ കോൾബാക്ക് URI രജിസ്റ്റർ ചെയ്യുക. ഫ്രാഗ്മെന്റുകളും എംബെഡ് ചെയ്ത ക്രെഡൻഷ്യലുകളും നിരസിക്കും. ഓപ്ഷണലായ client_uri, logo_uri എന്നിവ HTTPS ഉപയോഗിക്കണം; രജിസ്ട്രേഷൻ സമയത്ത് ThunderPhone അവ ഫെച്ച് ചെയ്യില്ല. രജിസ്ട്രേഷന് നിരക്ക് പരിധിയുണ്ട്. രജിസ്റ്റർ ചെയ്ത ക്ലയന്റുകൾക്ക് കാലഹരണപ്പെടില്ല, കണക്ഷൻ റിവോക്ക് ചെയ്താലും രജിസ്റ്റർ ചെയ്ത നിലയിൽ തുടരും. HTTPS കോൾബാക്കുകളിൽ https://chatgpt.com/connector/oauth/<id>, https://chatgpt.com/connector_platform_oauth_redirect എന്നിവ ഉൾപ്പെടുന്നു. ഓരോ കണക്ഷനും അതിന്റേതായ ക്ലയന്റ് രജിസ്റ്റർ ചെയ്യാം.

ഓതറൈസേഷൻ കോഡ്

കണ്ടെത്തിയ ഓതറൈസേഷൻ എൻഡ്പോയിന്റ് client_id, കൃത്യമായി രജിസ്റ്റർ ചെയ്ത redirect_uri, response_type=code, റാൻഡം state, scope, code_challenge, code_challenge_method=S256, resource=https://api.thunderphone.com/v1/mcp എന്നിവ ഉപയോഗിച്ച് തുറക്കുക. പുതിയ ഉയർന്ന-എൻട്രോപ്പിയുള്ള PKCE വെരിഫയറിന്റെ പാഡ്ഡിങ് ഇല്ലാത്ത base64url SHA-256 ഡൈജസ്റ്റ് ആയി ചലഞ്ച് കണക്കാക്കുക. കോഡ് എക്സ്ചേഞ്ച് ചെയ്യുന്നതിന് മുമ്പ് ലഭിക്കുന്ന state, iss എന്നിവ പരിശോധിക്കുക. നിരസിക്കലും പ്രോട്ടോക്കോൾ പിശകുകളും ഉൾപ്പെടെ എല്ലാ ഓതറൈസേഷൻ പ്രതികരണങ്ങളും കണ്ടെത്തിയ issuer-നോട് കൃത്യമായി പൊരുത്തപ്പെടുന്ന iss ഉപയോഗിച്ച് ഇഷ്യൂവറെ തിരിച്ചറിയിക്കുന്നു. അസാധുവായ ക്ലയന്റിനോ കോൾബാക്കിനോ ഉള്ള പിശകുകൾ ആ കോൾബാക്കിലേക്ക് റീഡയറക്റ്റ് ചെയ്യാതെ ലോക്കലായി ലഭിക്കും.

ഫോം എൻകോഡിങ് ഉപയോഗിച്ച് POST /v1/oauth/token-ൽ എക്സ്ചേഞ്ച് ചെയ്യുക (JSON-ഉം സ്വീകരിക്കും):

grant_type=authorization_code
client_id=<your client id>
code=<single-use authorization code>
redirect_uri=<exact registered redirect URI>
code_verifier=<original PKCE verifier>
resource=https://api.thunderphone.com/v1/mcp

ഓപ്ഷണലായ resource പാരാമീറ്റർ ഓതറൈസേഷനും ടോക്കൺ അഭ്യർത്ഥനകൾക്കും (റിഫ്രഷ്, ഡിവൈസ് എക്സ്ചേഞ്ചുകൾ ഉൾപ്പെടെ) സ്വീകരിക്കും. അത് ഒഴിവാക്കിയാൽ, കണ്ടെത്തിയ MCP റിസോഴ്സാണ് ഡിഫോൾട്ട്. നൽകിയിട്ടുണ്ടെങ്കിൽ, അത് ആ റിസോഴ്സിനോട് കൃത്യമായി പൊരുത്തപ്പെടണം; മറ്റ് മൂല്യങ്ങൾക്ക് invalid_target ലഭിക്കും. ആക്സസ് ടോക്കണുകൾ ആ ഓഡിയൻസ് വഹിക്കുന്നു, ഓഡിയൻസ് ഇല്ലാത്തതോ വ്യത്യസ്ത ഓഡിയൻസുള്ളതോ ആയ ടോക്കണുകൾ MCP 401, ഡിസ്കവറി ചലഞ്ച് എന്നിവയോടെ നിരസിക്കുന്നു.

ഓതറൈസേഷൻ അഭ്യർത്ഥനകളും കോഡുകളും 10 മിനിറ്റിന് ശേഷം കാലഹരണപ്പെടും. എല്ലാ ടോക്കൺ പ്രതികരണങ്ങളിലും access_token, token_type (Bearer), expires_in (ഡിഫോൾട്ടായി 3600 സെക്കൻഡ്), refresh_token, scope, organization_id, organization_name എന്നിവ അടങ്ങിയിരിക്കും. ആക്സസ് ടോക്കണുകൾ Authorization: Bearer ഹെഡറിലൂടെ മാത്രം അയയ്ക്കുക. URL-കളിലോ ലോഗുകളിലോ സോഴ്സ് കൺട്രോളിലോ ചാറ്റിലോ ഒരിക്കലും ടോക്കണുകൾ ഇടരുത്.

റിഫ്രഷും റിവൊക്കും

ടോക്കൺ എൻഡ്പോയിന്റിൽ grant_type=refresh_token, client_id, refresh_token, resource എന്നിവ ഉപയോഗിച്ച് റിഫ്രഷ് ചെയ്യുക. പുതിയ റിഫ്രഷ് ടോക്കൺ ആറ്റോമിക്കായി സംരക്ഷിച്ച് പഴയത് ഉപയോഗിക്കുന്നത് നിർത്തുക. വിജയകരമായ റിഫ്രഷില്ലാതെ 30 ദിവസത്തിന് ശേഷം റിഫ്രഷ് ടോക്കണുകൾ കാലഹരണപ്പെടും. ഓപ്ഷണലായ scope അനുവദിച്ച പെർമിഷനുകൾ പരിമിതപ്പെടുത്താം. offline_access എപ്പോഴും ഉൾപ്പെടുന്നതാണ്, റിഫ്രഷ് ടോക്കണുകൾ എപ്പോഴും നൽകപ്പെടും. scope ഇല്ലാത്ത പ്രാരംഭ അഭ്യർത്ഥന offline_access മാത്രം അനുവദിക്കുന്നു, അതിനാൽ ക്ലയന്റുകൾക്ക് ആവശ്യമായ പെർമിഷനുകൾ അഭ്യർത്ഥിക്കണം.

കോഡ് പുനരുപയോഗവും റൊട്ടേറ്റ് ചെയ്ത റിഫ്രഷ് ടോക്കൺ പുനരുപയോഗവും മുഴുവൻ ഓതറൈസേഷനും റിവോക്ക് ചെയ്യും. ഒരു ക്ലയന്റിനുള്ളിൽ റിഫ്രഷുകൾ സീരിയലൈസ് ചെയ്യുക; വിജയകരമായി എക്സ്ചേഞ്ച് ചെയ്ത ക്രെഡൻഷ്യൽ വീണ്ടും പ്ലേ ചെയ്യുന്നത് സുരക്ഷിതമായ റീട്രൈ തന്ത്രമല്ല.

വിച്ഛേദിക്കുന്നതിന്, POST /v1/oauth/revoke-ലേക്ക് token, client_id എന്നിവ അയയ്ക്കുക. ഏതെങ്കിലും ടോക്കൺ റിവോക്ക് ചെയ്യുന്നത് അതിൽനിന്ന് നൽകിയ എല്ലാ ടോക്കണുകളും ഉൾപ്പെടെ അതിന്റെ ഓതറൈസേഷൻ റിവോക്ക് ചെയ്യും. നിലവിലില്ലാത്ത ടോക്കൺ നിലവിലുണ്ടോ എന്ന് വെളിപ്പെടുത്താതെ വിജയം നൽകും. ഡാഷ്ബോർഡ് സെഷനുകൾക്ക് GET /v1/oauth/grants-ൽ സ്വന്തം ഓതറൈസേഷനുകൾ ലിസ്റ്റ് ചെയ്യാനും DELETE /v1/oauth/grants/<id>-ൽ ഒരെണ്ണം റിവോക്ക് ചെയ്യാനും കഴിയും; X-ThunderPhone-Org ഓർഗനൈസേഷൻ തിരഞ്ഞെടുക്കുന്നു.

ഡിവൈസ് ഓതറൈസേഷൻ

ഡിവൈസ് ഓതറൈസേഷൻ മുൻകൂട്ടി രജിസ്റ്റർ ചെയ്ത ക്ലയന്റുകൾക്കായി പരിമിതപ്പെടുത്തിയിരിക്കുന്നു; ഡൈനാമിക്കായി രജിസ്റ്റർ ചെയ്ത ക്ലയന്റുകൾക്ക് unauthorized_client ലഭിക്കും. മുൻകൂട്ടി രജിസ്റ്റർ ചെയ്ത പബ്ലിക് ക്ലയന്റ് thunderphone-cli ഡിവൈസ് ഓതറൈസേഷനും റിഫ്രഷും പിന്തുണയ്ക്കുന്നു. POST /v1/oauth/device/code-ലേക്ക് client_id=thunderphone-cli, scope എന്നിവ അയയ്ക്കുക. ഉപയോക്താവിന് user_code, verification_uri എന്നിവ കാണിക്കുക, അല്ലെങ്കിൽ verification_uri_complete തുറക്കുക.

grant_type=urn:ietf:params:oauth:grant-type:device_code, client_id, device_code എന്നിവ ഉപയോഗിച്ച് ടോക്കൺ എൻഡ്പോയിന്റ് പോൾ ചെയ്യുക; ലഭിച്ച interval എങ്കിലും (5 സെക്കൻഡ്) കാത്തിരിക്കുക. authorization_pending-ൽ തുടരുക. slow_down ലഭിക്കുമ്പോൾ, തുടർന്നുള്ള എല്ലാ അഭ്യർത്ഥനകൾക്കും പ്രതികരണത്തിൽ ലഭിക്കുന്ന പുതിയ interval (5 സെക്കൻഡ് വർധിപ്പിച്ചത്) ഉപയോഗിക്കുക. access_denied, expired_token, അല്ലെങ്കിൽ മറ്റേതെങ്കിലും പിശകിൽ നിർത്തുക. ഒരു ഡിവൈസ് കോഡ് ഒരിക്കലും സ്വയമേവ അംഗീകരിക്കരുത്.

മുൻകൂട്ടി രജിസ്റ്റർ ചെയ്ത thunderphone-mcp ക്ലയന്റ് ഏത് പോർട്ടിലും http://127.0.0.1/callback, http://localhost/callback എന്നിവ സ്വീകരിക്കുന്നു. സ്കീം, ഹോസ്റ്റ്, പാഥ്, ക്വറി എന്നിവ പൊരുത്തപ്പെടണം; ടോക്കൺ എക്സ്ചേഞ്ച് ഓതറൈസേഷനിൽ നിന്നുള്ള കൃത്യമായ റീഡയറക്റ്റ് URI (പോർട്ട് ഉൾപ്പെടെ) ഉപയോഗിക്കണം. ഡൈനാമിക്കായി രജിസ്റ്റർ ചെയ്ത ക്ലയന്റുകൾക്ക് പോർട്ട് ഉൾപ്പെടെ കൃത്യമായ റീഡയറക്റ്റ്-URI പൊരുത്തപ്പെടുത്തൽ ആവശ്യമാണ്. മറ്റൊരു പാഥ് വേണമെങ്കിൽ മറ്റൊരു കോൾബാക്ക് ഡൈനാമിക്കായി രജിസ്റ്റർ ചെയ്യുക.

അക്കൗണ്ട് ഐഡന്റിറ്റിയും വർക്ക്‌സ്‌പേസ് ഡൊമെയ്ൻ പരിശോധനകളും

നിങ്ങളുടെ ക്ലയന്റിന് ആവശ്യമായ ഓപ്പറേഷൻ സ്കോപ്പുകൾക്കൊപ്പം openid email രണ്ടും അഭ്യർത്ഥിക്കുക. Bearer ഹെഡറിൽ ആക്സസ് ടോക്കൺ നൽകി കണ്ടെത്തിയ userinfo_endpoint (GET /v1/oauth/userinfo) വിളിക്കുക. വിജയകരമായ പ്രതികരണത്തിൽ ഇനിപ്പറയുന്നവ അടങ്ങിയിരിക്കും:

{
  "sub": "123",
  "email": "person@example.com",
  "email_verified": true,
  "name": "Example User",
  "org_id": 456
}

sub സ്ഥിരമായ ഉപയോക്തൃ ഐഡന്റിഫയറാണ്; org_id സമ്മതസമയത്ത് തിരഞ്ഞെടുത്ത ഓർഗനൈസേഷനാണ്. എൻഡ്പോയിന്റിന് രണ്ട് ഐഡന്റിറ്റി സ്കോപ്പുകളും ആവശ്യമാണ്, ഏതെങ്കിലും ഒന്ന് ഇല്ലെങ്കിൽ 403 നൽകും. സ്ഥിരീകരിക്കാത്ത ഇമെയിൽ വിശ്വസനീയമാണെന്ന് അവകാശപ്പെടുന്നതിനുപകരം, അക്കൗണ്ടിന് സ്ഥിരീകരിച്ച ഇമെയിൽ പ്രൊഫൈൽ ഇല്ലെങ്കിൽ error=access_denied സഹിതം 403 നൽകും. അസാധുവായതോ കാലഹരണപ്പെട്ടതോ റിവോക്ക് ചെയ്തതോ തെറ്റായ ഓഡിയൻസുള്ളതോ ആയ ടോക്കണുകൾ 401 നൽകും. ഹ്യൂമൻ സെഷൻ ടോക്കണുകൾക്കും ഓർഗനൈസേഷൻ API കീകൾക്കും യൂസർഇൻഫോ വിളിക്കാനാകില്ല. ID ടോക്കൺ നൽകുന്നില്ല.

ലഭ്യമായ അനുമതികൾ

വിഭാഗംസ്കോപ്പുകൾ
ഏജന്റുകളും ഏജന്റ് ഇംപോർട്ടുകളുംagents:read, agents:write
കോളുകൾcalls:read, calls:write
ഫോൺ നമ്പറുകളും VoIP-ഉംnumbers:read, numbers:write
അറിവ്knowledge:read, knowledge:write
കാമ്പെയ്‌നുകൾcampaigns:read, campaigns:write
ഇന്റഗ്രേഷനുകൾ, വെബ്‌ഹുക്ക് എൻഡ്‌പോയിന്റുകൾ, MCP സെർവറുകൾintegrations:read, integrations:write
ശബ്ദങ്ങൾvoices:read
പരിശോധനാ സാഹചര്യങ്ങൾ, പരിശോധനാ റണ്ണുകൾ, സാധൂകരണംtesting:read, testing:write
ബില്ലിംഗ്billing:read
അക്കൗണ്ട് ഐഡന്റിറ്റിയും സ്ഥിരീകരിച്ച ഇമെയിലുംopenid, email (userinfo-യ്ക്ക് രണ്ടും ആവശ്യമാണ്)
സ്ഥിരമായ കണക്ഷൻoffline_access (എപ്പോഴും ഉൾപ്പെടുത്തിയിരിക്കുന്നു)

GET, HEAD, OPTIONS എന്നിവ റീഡ് സ്കോപ്പുകൾ ഉപയോഗിക്കുന്നു; മറ്റ് രീതികൾ റൈറ്റ് സ്കോപ്പുകൾ ഉപയോഗിക്കുന്നു. OAuth വഴി ശബ്ദ, ബില്ലിംഗ് മാറ്റങ്ങൾ ലഭ്യമല്ല; POST /v1/voices/preview ഒരു ശബ്ദത്തിന്റെ കോൺഫിഗറേഷൻ മാറ്റാതെ പ്രിവ്യൂ ചെയ്യുന്നതിനാൽ voices:read ഉപയോഗിക്കുന്നു. MCP ടൂളുകൾ അവയുടെ അടിസ്ഥാന REST പ്രവർത്തനത്തിന്റെ സ്കോപ്പ് നടപ്പിലാക്കുന്നു. അനുമതി നൽകുന്ന ഉപയോക്താവ് രണ്ട് ഓർഗനൈസേഷനുകളിലും ഉൾപ്പെട്ടാലും, ഓർഗനൈസേഷനുകൾക്കിടയിലെ കൈമാറ്റങ്ങൾ നിരസിക്കപ്പെടും. API-കീ മാനേജ്‌മെന്റും മനുഷ്യ അക്കൗണ്ട് ക്രമീകരണങ്ങളും ഉൾപ്പെടെയുള്ള മറ്റ് API വിഭാഗങ്ങൾ OAuth വഴി ലഭ്യമല്ല. REST പ്രവർത്തനത്തിൽ അനുമതി ഇല്ലെങ്കിൽ WWW-Authenticate: Bearer error="insufficient_scope", scope="..." സഹിതം 403 ലഭിക്കും. അസാധുവായതോ കാലഹരണപ്പെട്ടതോ ആയ ആക്സസ് ടോക്കണുകൾ 401 നൽകും.

MCP ടൂൾ ഓതന്റിക്കേഷൻ സിഗ്നലുകൾ

tools/list-ലെ ഓരോ ടൂളിലും ആ ടൂളിന്റെ REST പ്രവർത്തനത്തിന്റെ സ്കോപ്പിനൊപ്പം securitySchemes: [{"type": "oauth2", "scopes": ["agents:read"]}] ഉൾപ്പെടുന്നു. പൊതു ഡോക്യുമെന്റേഷൻ ടൂളുകൾ ശൂന്യമായ സ്കോപ്പ് ലിസ്റ്റ് ഉപയോഗിക്കുന്നു, എങ്കിലും ഓതന്റിക്കേറ്റ് ചെയ്ത കണക്ഷൻ ആവശ്യമാണ്.

ടൂളിന്റെ സ്കോപ്പ് ഇല്ലാത്ത സാധുവായ ടോക്കണിന് HTTP 200 ലഭിക്കും; അതിൽ isError: true ഉൾക്കൊള്ളുന്ന JSON-RPC result, content-ലെ വിശദീകരണ വാചകം, _meta["mcp/www_authenticate"] എന്നിവ ഉണ്ടായിരിക്കും. രണ്ടാമത്തേത് resource_metadata, error="insufficient_scope", error_description, ആവശ്യമായ scope എന്നിവയുള്ള Bearer ചലഞ്ച് അടങ്ങിയ ഒരു അറേയാണ്. ടൂൾ പ്രവർത്തിപ്പിക്കില്ല. വിപുലീകരിച്ച സമ്മതം അഭ്യർത്ഥിക്കാൻ ഈ ചലഞ്ച് ഉപയോഗിക്കുക. ഇല്ലാത്തതോ അസാധുവായതോ ആയ ഓതന്റിക്കേഷൻ WWW-Authenticate സഹിതം HTTP 401 നൽകുന്നത് തുടരും; REST സ്കോപ്പ് പരാജയങ്ങൾ HTTP 403 നൽകുന്നത് തുടരും.

ക്രെഡൻഷ്യൽ നിലനിർത്തൽ

API സ്റ്റേജിംഗിലും പ്രൊഡക്ഷനിലും ഓരോ മണിക്കൂറിലും python manage.py oauth_cleanup പ്രവർത്തിപ്പിക്കുന്നു. ഇത് കാലഹരണപ്പെട്ട അംഗീകാര അഭ്യർത്ഥനകളും ഡിവൈസ് കോഡുകളും നീക്കം ചെയ്യുന്നു. കാലഹരണപ്പെട്ട ആക്സസ് ടോക്കണുകൾ, അംഗീകാര കോഡുകൾ, റിഫ്രഷ്-ടോക്കൺ ഹാഷുകൾ എന്നിവ അവയുടെ ഗ്രാന്റ് റദ്ദാക്കിയതിനു ശേഷമോ മുഴുവൻ ഫാമിലിയും നിർജ്ജീവമായതിനു ശേഷമോ മാത്രമേ നീക്കം ചെയ്യൂ. ഫാമിലിക്ക് ഉപയോഗിക്കാവുന്ന റിഫ്രഷ് ടോക്കൺ, അംഗീകാര കോഡ്, അംഗീകരിച്ച ഡിവൈസ് കോഡ്, അല്ലെങ്കിൽ ആക്സസ് ടോക്കൺ ഉള്ളിടത്തോളം ഉപയോഗിച്ച ഹാഷുകൾ നിലനിർത്തും; അതിനാൽ ക്ലീനപ്പ് റീപ്ലേ കണ്ടെത്തൽ പ്രവർത്തനരഹിതമാക്കാൻ കഴിയില്ല.