Connect Claude, ChatGPT, Cursor or your own agent to Periphery, and search the index and read app records in plain language.
The MCP server lets an AI assistant or agent work with Periphery for you. Connect it once, then ask in plain language: “what does Periphery have on acme.com?”, “which of these look like ours, and which look like phishing?”, “list the apps exposing a verified Stripe key and draft the rotation plan”. The assistant runs the searches, reads the records and screenshots, and does the sorting and the write-up.It reads the same index as the console and the API, under the same plan, monthly allowance and redaction.
Server URL
https://mcp.periphery.exposed/mcp
Transport
Streamable HTTP, MCP versions 2025-03-26 to 2026-07-28
Authentication
Sign in with your Periphery account (OAuth), or your API key as a bearer token
In Claude, open Settings, then Connectors, and choose Add custom connector.
Name it Periphery and paste the server URL, https://mcp.periphery.exposed/mcp.
Connect it. Claude opens Periphery: sign in if asked, check the request, and click Allow.
The connector follows your Claude account to the web, desktop and mobile apps. On a Team or Enterprise plan, an owner may have to add custom connectors for the organisation first.
Add Periphery as a custom connector with the server URL https://mcp.periphery.exposed/mcp and OAuth authentication. ChatGPT opens Periphery: sign in if asked, check the request, and click Allow.Where custom connectors live in ChatGPT’s settings, and whether developer mode has to be on, depends on your ChatGPT plan.
claude mcp add --transport http periphery https://mcp.periphery.exposed/mcp
Then run /mcp in Claude Code and choose Periphery to sign in. To use your API key instead:
Cursor sends you to Periphery to sign in the first time it connects. To use your API key instead, add "headers": {"Authorization": "Bearer <your key>"} next to url.
VS Code sends you to Periphery to sign in the first time the server starts.
The Messages API connects to remote MCP servers itself. Pass your Periphery API key as the server’s authorization_token:
curl https://api.anthropic.com/v1/messages \ -H "content-type: application/json" \ -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2026-10-21" \ -H "anthropic-beta: mcp-client-2025-11-20" \ -d '{ "model": "claude-opus-5-5", "max_tokens": 16000, "mcp_servers": [{ "type": "url", "url": "https://mcp.periphery.exposed/mcp", "name": "periphery", "authorization_token": "'"$PERIPHERY_API_KEY"'" }], "tools": [{"type": "mcp_toolset", "mcp_server_name": "periphery"}], "messages": [{"role": "user", "content": "What has Periphery indexed for acme.com? Sort the apps by how likely they are to be ours."}] }'
Any other MCP client works the same way: point it at the server URL and let it run the sign-in, or give it your API key as an Authorization: Bearer header.
Sign in with Periphery. Chat apps such as Claude and ChatGPT take a URL, not a key, so they use OAuth. The app registers itself with Periphery and sends you to a Periphery page that names the app, the account it will use, what it will be able to do, and where you return to. Once you click Allow, the app gets a token for the MCP server only, which it renews on its own while you keep using it. Periphery sends you back to the app only when you click Allow or Cancel; a malformed request shows an error instead.
Any app can register itself and give itself any name. Before you click Allow, check where the page says you will return: a site such as claude.ai or chatgpt.com for a chat app, or an app on this device for a desktop app or IDE. If you did not start the connection, close the tab: Cancel also sends you back, to wherever the app registered.
API key. Clients that let you set a header, such as Claude Code, Cursor, VS Code, the Claude API or your own agent, can send your API key as Authorization: Bearer <key>. Rotating the key on the account page disconnects every client that uses it.
Runs a query in the search syntax and returns a page of up to 50 hits.
Yes, one per page
get_app
Reads one app’s full record, with masked credentials.
No
get_app_screenshot
Returns the app’s last screenshot as an image the assistant can look at.
No
get_account
Shows your plan, the searches you have left this month and when they reset.
No
list_key_types
Lists the credential detectors found in the index, for the creds: filter.
No
Clients that show prompts also offer three ready-made investigations: Investigate a domain, Triage exposed credentials and Find clones of an app. See Tools and prompts for every input and output.The server also briefs the assistant on how to work with Periphery: the query syntax, the search budget, and that a match is a lead to weigh, not proof of who runs an app.
Plan. MCP access is part of Plus. On Free, the sign-in page offers the upgrade instead of Allow, and a client that connects anyway gets a message, which your assistant relays, saying the plan does not include MCP.
Monthly searches. Each search_apps call is one search from your monthly allowance, shared with the console and the API; each page is another search. Reading records and screenshots uses none. Every search result says how many searches are left, so the assistant can budget its work.
Rate limit. Your account makes one request per second across the console, the API and MCP. Assistants often call several tools at once, so the server queues those calls for a few seconds instead of refusing them.
Whatever your assistant reads from Periphery, email addresses and masked credentials included, is sent to the assistant and to the AI provider behind it, and is handled under their terms from there. Check that your organisation allows that before you connect. Over MCP the credentials Periphery found travel masked, in records, page text and search snippets alike, and so does anything else in page text that looks like a key (details). Screenshots show the page as any visitor sees it, except that the screenshot of a page printing a credential Periphery found isn’t sent at all.
Settings, under AI assistants (MCP), lists every app connected to your account, with when it was connected and last used. Disconnect stops its access at once. A connection ends on its own after 30 days unused, and after 90 days in any case; the app then asks you to sign in again. Deleting your account disconnects every app.
An app’s sign-in renews itself with a token that changes every time. If an old one is used again later, Periphery takes it as a sign that a copy exists outside the app, and ends the connection, so that a copied token stops working too. An app that runs several copies of itself on one sign-in can trip this: several Claude Code sessions open at once, for example, when one of them sat idle for a while. Connect those with your API key instead.If the sign-in page says the app isn’t registered with Periphery, remove Periphery from the app and add it again: the app then registers anew.
Your assistant’s conclusions about who runs an app are its own reading of public evidence. Periphery performs ownership investigation and attribution as part of its managed service; the console, the API and the MCP server surface candidate matches.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Periphery","colors":{"primary":"#0c0c0d","light":"#ffe14a","dark":"#0c0c0d"},"logo":{"light":"https://mintcdn.com/gg-labs-70a5437a/mTnMuteMHaJB6c5o/logo/light.svg?fit=max\u0026auto=format\u0026n=mTnMuteMHaJB6c5o\u0026q=85\u0026s=eeacb576280cb86ed05eca5a5969d14e","dark":"https://mintcdn.com/gg-labs-70a5437a/mTnMuteMHaJB6c5o/logo/dark.svg?fit=max\u0026auto=format\u0026n=mTnMuteMHaJB6c5o\u0026q=85\u0026s=4b4e160f6c5abcbf5162838c0dbc20d8","href":"https://periphery.exposed"},"favicon":"https://mintcdn.com/gg-labs-70a5437a/mTnMuteMHaJB6c5o/logo/favicon.svg?fit=max\u0026auto=format\u0026n=mTnMuteMHaJB6c5o\u0026q=85\u0026s=842fc26ed64a63e05262ffbb0a1232fb","api":{"openapi":"openapi.yaml","playground":{"display":"interactive","proxy":true},"examples":{"defaults":"all","languages":["bash","python","javascript"]}},"appearance":{"default":"system"},"navbar":{"links":[{"href":"https://console.periphery.exposed","label":"Console"}]},"footer":{"links":[{"header":"Periphery","items":[{"label":"Pricing","href":"https://periphery.exposed/"},{"label":"Terms of service","href":"https://console.periphery.exposed/terms"},{"label":"Privacy policy","href":"https://console.periphery.exposed/privacy"},{"label":"Contact","href":"mailto:contact@periphery.exposed"}]}]},"search":{"prompt":"Search the docs..."},"fonts":{"family":"Space Grotesk"},"contextual":{"options":["copy","claude","chatgpt"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"gg-labs-70a5437a","hasAudioNarration":false,"actualSubdomain":"gg-labs-70a5437a","customDomains":[],"gitSource":{"type":"github","owner":"ggranjus","repo":"periphery","deployBranch":"main","contentDirectory":"docs/site","isPrivate":true,"mountPath":"","label":"","_id":"6af4a760a8ee1879625b5547"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af4a7b9a8ee1879625b66dc","clientVersion":"0.0.4102","searchFilterCounts":[]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"mcp/overview","slug":"/mcp/overview","pageMetadata":{"title":"MCP server","description":"Connect Claude, ChatGPT, Cursor or your own agent to Periphery, and search the index and read app records in plain language.","keywords":["mcp","model context protocol","claude","chatgpt","cursor","vs code","ai assistant","agent","connector","oauth"],"href":"/mcp/overview"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Connect Claude, ChatGPT, Cursor or your own agent to Periphery, and search the index and read app records in plain language.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tab,Table,Tabs,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`The MCP server lets an AI assistant or agent work with Periphery for you. Connect it once, then ask in plain language: “what does Periphery have on acme.com?”, “which of these look like ours, and which look like phishing?”, “list the apps exposing a verified Stripe key and draft the rotation plan”. The assistant runs the searches, reads the records and screenshots, and does the sorting and the write-up.`}),`\n`,_jsxs(_components.p,{children:[`It reads the same index as the console and the `,_jsx(_components.a,{href:`/api/overview`,children:`API`}),`, under the same plan, monthly allowance and redaction.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Server URL`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`https://mcp.periphery.exposed/mcp`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Transport`}),_jsx(_components.td,{children:`Streamable HTTP, MCP versions 2025-03-26 to 2026-07-28`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Authentication`}),_jsx(_components.td,{children:`Sign in with your Periphery account (OAuth), or your API key as a bearer token`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Plans`}),_jsx(_components.td,{children:`Plus`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`connect-your-assistant`,children:`Connect your assistant`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Claude`,id:`claude`,children:[_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`In Claude, open `,_jsx(_components.strong,{children:`Settings`}),`, then `,_jsx(_components.strong,{children:`Connectors`}),`, and choose `,_jsx(_components.strong,{children:`Add custom connector`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Name it Periphery and paste the server URL, `,_jsx(_components.code,{children:`https://mcp.periphery.exposed/mcp`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Connect it. Claude opens Periphery: sign in if asked, check the request, and click `,_jsx(_components.strong,{children:`Allow`}),`.`]}),`\n`]}),_jsx(_components.p,{children:`The connector follows your Claude account to the web, desktop and mobile apps. On a Team or Enterprise plan, an owner may have to add custom connectors for the organisation first.`})]}),_jsxs(Tab,{title:`ChatGPT`,id:`chatgpt`,children:[_jsxs(_components.p,{children:[`Add Periphery as a custom connector with the server URL `,_jsx(_components.code,{children:`https://mcp.periphery.exposed/mcp`}),` and OAuth authentication. ChatGPT opens Periphery: sign in if asked, check the request, and click `,_jsx(_components.strong,{children:`Allow`}),`.`]}),_jsx(_components.p,{children:`Where custom connectors live in ChatGPT’s settings, and whether developer mode has to be on, depends on your ChatGPT plan.`})]}),_jsxs(Tab,{title:`Claude Code`,id:`claude-code`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`claude`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --transport`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` http`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` periphery`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://mcp.periphery.exposed/mcp`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Then run `,_jsx(_components.code,{children:`/mcp`}),` in Claude Code and choose Periphery to sign in. To use your API key instead:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`claude`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --transport`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` http`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` periphery`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://mcp.periphery.exposed/mcp`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$PERIPHERY_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})})]}),_jsxs(Tab,{title:`Cursor`,id:`cursor`,children:[_jsxs(_components.p,{children:[`Add the server to `,_jsx(_components.code,{children:`~/.cursor/mcp.json`}),`, or to `,_jsx(_components.code,{children:`.cursor/mcp.json`}),` in a project:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mcpServers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periphery\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://mcp.periphery.exposed/mcp\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Cursor sends you to Periphery to sign in the first time it connects. To use your API key instead, add `,_jsx(_components.code,{children:`\"headers\": {\"Authorization\": \"Bearer \u003cyour key>\"}`}),` next to `,_jsx(_components.code,{children:`url`}),`.`]})]}),_jsxs(Tab,{title:`VS Code`,id:`vs-code`,children:[_jsxs(_components.p,{children:[`Add the server to `,_jsx(_components.code,{children:`.vscode/mcp.json`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"servers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periphery\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"http\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://mcp.periphery.exposed/mcp\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(_components.p,{children:`VS Code sends you to Periphery to sign in the first time the server starts.`})]}),_jsxs(Tab,{title:`Claude API`,id:`claude-api`,children:[_jsxs(_components.p,{children:[`The Messages API connects to remote MCP servers itself. Pass your Periphery API key as the server’s `,_jsx(_components.code,{children:`authorization_token`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`17`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.anthropic.com/v1/messages`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"content-type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"x-api-key: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ANTHROPIC_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"anthropic-version: 2026-10-21\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"anthropic-beta: mcp-client-2025-11-20\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"model\": \"claude-opus-5-5\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"max_tokens\": 16000,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"mcp_servers\": [{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"type\": \"url\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"url\": \"https://mcp.periphery.exposed/mcp\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"name\": \"periphery\",`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"authorization_token\": \"'\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$PERIPHERY_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"'\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"tools\": [{\"type\": \"mcp_toolset\", \"mcp_server_name\": \"periphery\"}],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"messages\": [{\"role\": \"user\", \"content\": \"What has Periphery indexed for acme.com? Sort the apps by how likely they are to be ours.\"}]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})})]})]}),`\n`,_jsxs(_components.p,{children:[`Any other MCP client works the same way: point it at the server URL and let it run the sign-in, or give it your API key as an `,_jsx(_components.code,{children:`Authorization: Bearer`}),` header.`]}),`\n`,_jsx(Heading,{level:`2`,id:`two-ways-to-authenticate`,children:`Two ways to authenticate`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sign in with Periphery.`}),` Chat apps such as Claude and ChatGPT take a URL, not a key, so they use OAuth. The app registers itself with Periphery and sends you to a Periphery page that names the app, the account it will use, what it will be able to do, and where you return to. Once you click `,_jsx(_components.strong,{children:`Allow`}),`, the app gets a token for the MCP server only, which it renews on its own while you keep using it. Periphery sends you back to the app only when you click `,_jsx(_components.strong,{children:`Allow`}),` or `,_jsx(_components.strong,{children:`Cancel`}),`; a malformed request shows an error instead.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Any app can register itself and give itself any name. Before you click `,_jsx(_components.strong,{children:`Allow`}),`, check where the page says you will return: a site such as `,_jsx(_components.code,{children:`claude.ai`}),` or `,_jsx(_components.code,{children:`chatgpt.com`}),` for a chat app, or `,_jsx(_components.strong,{children:`an app on this device`}),` for a desktop app or IDE. If you did not start the connection, close the tab: `,_jsx(_components.strong,{children:`Cancel`}),` also sends you back, to wherever the app registered.`]})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`API key.`}),` Clients that let you set a header, such as Claude Code, Cursor, VS Code, the Claude API or your own agent, can send your `,_jsx(_components.a,{href:`/api/authentication`,children:`API key`}),` as `,_jsx(_components.code,{children:`Authorization: Bearer \u003ckey>`}),`. Rotating the key on the account page disconnects every client that uses it.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-the-assistant-can-do`,children:`What the assistant can do`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Tool`}),_jsx(_components.th,{children:`What it does`}),_jsx(_components.th,{children:`Uses a search`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`search_apps`})}),_jsxs(_components.td,{children:[`Runs a query in the `,_jsx(_components.a,{href:`/search/query-syntax`,children:`search syntax`}),` and returns a page of up to 50 hits.`]}),_jsx(_components.td,{children:`Yes, one per page`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`get_app`})}),_jsx(_components.td,{children:`Reads one app’s full record, with masked credentials.`}),_jsx(_components.td,{children:`No`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`get_app_screenshot`})}),_jsx(_components.td,{children:`Returns the app’s last screenshot as an image the assistant can look at.`}),_jsx(_components.td,{children:`No`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`get_account`})}),_jsx(_components.td,{children:`Shows your plan, the searches you have left this month and when they reset.`}),_jsx(_components.td,{children:`No`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`list_key_types`})}),_jsxs(_components.td,{children:[`Lists the credential detectors found in the index, for the `,_jsx(_components.code,{children:`creds:`}),` filter.`]}),_jsx(_components.td,{children:`No`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Clients that show prompts also offer three ready-made investigations: `,_jsx(_components.strong,{children:`Investigate a domain`}),`, `,_jsx(_components.strong,{children:`Triage exposed credentials`}),` and `,_jsx(_components.strong,{children:`Find clones of an app`}),`. See `,_jsx(_components.a,{href:`/mcp/tools`,children:`Tools and prompts`}),` for every input and output.`]}),`\n`,_jsx(_components.p,{children:`The server also briefs the assistant on how to work with Periphery: the query syntax, the search budget, and that a match is a lead to weigh, not proof of who runs an app.`}),`\n`,_jsx(Heading,{level:`2`,id:`limits`,children:`Limits`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Plan.`}),` MCP access is part of Plus. On Free, the sign-in page offers the upgrade instead of `,_jsx(_components.strong,{children:`Allow`}),`, and a client that connects anyway gets a message, which your assistant relays, saying the plan does not include MCP.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Monthly searches.`}),` Each `,_jsx(_components.code,{children:`search_apps`}),` call is one search from your `,_jsx(_components.a,{href:`/plans#monthly-searches`,children:`monthly allowance`}),`, shared with the console and the API; each page is another search. Reading records and screenshots uses none. Every search result says how many searches are left, so the assistant can budget its work.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Rate limit.`}),` Your account makes one request per second across the console, the API and MCP. Assistants often call several tools at once, so the server queues those calls for a few seconds instead of refusing them.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-leaves-periphery`,children:`What leaves Periphery`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Whatever your assistant reads from Periphery, email addresses and masked credentials included, is sent to the assistant and to the AI provider behind it, and is handled under their terms from there. Check that your organisation allows that before you connect. Over MCP the credentials Periphery found travel masked, in records, page text and search snippets alike, and so does anything else in page text that looks like a key (`,_jsx(_components.a,{href:`/mcp/tools#get_app`,children:`details`}),`). Screenshots show the page as any visitor sees it, except that the screenshot of a page printing a credential Periphery found isn’t sent at all.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`disconnect-an-app`,children:`Disconnect an app`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Settings`}),`, under `,_jsx(_components.strong,{children:`AI assistants (MCP)`}),`, lists every app connected to your account, with when it was connected and last used. `,_jsx(_components.strong,{children:`Disconnect`}),` stops its access at once. A connection ends on its own after 30 days unused, and after 90 days in any case; the app then asks you to sign in again. Deleting your account disconnects every app.`]}),`\n`,_jsx(Heading,{level:`2`,id:`if-an-app-keeps-asking-you-to-sign-in`,children:`If an app keeps asking you to sign in`}),`\n`,_jsxs(_components.p,{children:[`An app’s sign-in renews itself with a token that changes every time. If an old one is used again later, Periphery takes it as a sign that a copy exists outside the app, and ends the connection, so that a copied token stops working too. An app that runs several copies of itself on one sign-in can trip this: several Claude Code sessions open at once, for example, when one of them sat idle for a while. Connect those with your `,_jsx(_components.a,{href:`#two-ways-to-authenticate`,children:`API key`}),` instead.`]}),`\n`,_jsx(_components.p,{children:`If the sign-in page says the app isn’t registered with Periphery, remove Periphery from the app and add it again: the app then registers anew.`}),`\n`,_jsx(Heading,{level:`2`,id:`attribution`,children:`Attribution`}),`\n`,_jsxs(_components.p,{children:[`Your assistant’s conclusions about who runs an app are its own reading of public evidence. Periphery performs ownership investigation and attribution as part of its `,_jsx(_components.a,{href:`/plans#managed-service-and-custom-terms`,children:`managed service`}),`; the console, the API and the MCP server surface candidate matches.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"MCP server","description":"Connect Claude, ChatGPT, Cursor or your own agent to Periphery, and search the index and read app records in plain language.","keywords":["mcp","model context protocol","claude","chatgpt","cursor","vs code","ai assistant","agent","connector","oauth"],"href":"/mcp/overview"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Connect your assistant","slug":"connect-your-assistant","depth":2,"children":[]},{"title":"Two ways to authenticate","slug":"two-ways-to-authenticate","depth":2,"children":[]},{"title":"What the assistant can do","slug":"what-the-assistant-can-do","depth":2,"children":[]},{"title":"Limits","slug":"limits","depth":2,"children":[]},{"title":"What leaves Periphery","slug":"what-leaves-periphery","depth":2,"children":[]},{"title":"Disconnect an app","slug":"disconnect-an-app","depth":2,"children":[]},{"title":"If an app keeps asking you to sign in","slug":"if-an-app-keeps-asking-you-to-sign-in","depth":2,"children":[]},{"title":"Attribution","slug":"attribution","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"gg-labs-70a5437a","siteName":"Periphery","title":"MCP server - Periphery","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-11T17:37:13.227Z","originalFileLocation":"mcp/overview.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Connect Claude, ChatGPT, Cursor or your own agent to Periphery, and search the index and read app records in plain language.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Periphery\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/gg-labs-70a5437a/XCCtb_vtsBhKWxAb/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/gg-labs-70a5437a/XCCtb_vtsBhKWxAb/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/gg-labs-70a5437a/XCCtb_vtsBhKWxAb/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/gg-labs-70a5437a/XCCtb_vtsBhKWxAb/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/gg-labs-70a5437a/XCCtb_vtsBhKWxAb/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/gg-labs-70a5437a/XCCtb_vtsBhKWxAb/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/gg-labs-70a5437a/XCCtb_vtsBhKWxAb/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/gg-labs-70a5437a/XCCtb_vtsBhKWxAb/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/gg-labs-70a5437a/XCCtb_vtsBhKWxAb/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"MCP server - Periphery\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connect Claude, ChatGPT, Cursor or your own agent to Periphery, and search the index and read app records in plain language.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Periphery\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://gg-labs-70a5437a.mintlify.app/mcp/overview\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://gg-labs-70a5437a.mintlify.site/_mintlify/api/og/v2?division=AI+assistants\u0026amp;title=MCP+server\u0026amp;description=Connect+Claude%2C+ChatGPT%2C+Cursor+or+your+own+agent+to+Periphery%2C+and+search+the+index+and+read+app+records+in+plain+language.\u0026amp;theme=4f81fb74dd819cb097465c8e\u0026amp;signature=c7857cee082a0d894338d363f85c310a1134e4518cb0cc6aec05b14b55da86e7\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"MCP server - Periphery\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connect Claude, ChatGPT, Cursor or your own agent to Periphery, and search the index and read app records in plain language.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://gg-labs-70a5437a.mintlify.site/_mintlify/api/og/v2?division=AI+assistants\u0026amp;title=MCP+server\u0026amp;description=Connect+Claude%2C+ChatGPT%2C+Cursor+or+your+own+agent+to+Periphery%2C+and+search+the+index+and+read+app+records+in+plain+language.\u0026amp;theme=4f81fb74dd819cb097465c8e\u0026amp;signature=c7857cee082a0d894338d363f85c310a1134e4518cb0cc6aec05b14b55da86e7\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/gg-labs-70a5437a/XCCtb_vtsBhKWxAb/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Periphery\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0c0c0d\">\u003clink data-mint-head rel=\"canonical\" href=\"https://gg-labs-70a5437a.mintlify.app/mcp/overview\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/mcp/overview.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://gg-labs-70a5437a.mintlify.app/#organization\",\"name\":\"Periphery\",\"url\":\"https://gg-labs-70a5437a.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/gg-labs-70a5437a/mTnMuteMHaJB6c5o/logo/light.svg?fit=max\u0026auto=format\u0026n=mTnMuteMHaJB6c5o\u0026q=85\u0026s=eeacb576280cb86ed05eca5a5969d14e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://gg-labs-70a5437a.mintlify.app#website\",\"name\":\"Periphery\",\"url\":\"https://gg-labs-70a5437a.mintlify.app\",\"publisher\":{\"@id\":\"https://gg-labs-70a5437a.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://gg-labs-70a5437a.mintlify.app/mcp/overview#webpage\",\"url\":\"https://gg-labs-70a5437a.mintlify.app/mcp/overview\",\"name\":\"MCP server\",\"description\":\"Connect Claude, ChatGPT, Cursor or your own agent to Periphery, and search the index and read app records in plain language.\",\"dateModified\":\"2026-11-11T17:37:13.227Z\",\"isPartOf\":{\"@id\":\"https://gg-labs-70a5437a.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://gg-labs-70a5437a.mintlify.app/mcp/overview#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://gg-labs-70a5437a.mintlify.app/mcp/overview#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Periphery\",\"item\":\"https://gg-labs-70a5437a.mintlify.app\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MCP server\",\"item\":\"https://gg-labs-70a5437a.mintlify.app/mcp/overview\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://gg-labs-70a5437a.mintlify.app/mcp/overview#article\",\"headline\":\"MCP server\",\"name\":\"MCP server\",\"description\":\"Connect Claude, ChatGPT, Cursor or your own agent to Periphery, and search the index and read app records in plain language.\",\"url\":\"https://gg-labs-70a5437a.mintlify.app/mcp/overview\",\"mainEntityOfPage\":{\"@id\":\"https://gg-labs-70a5437a.mintlify.app/mcp/overview#webpage\"},\"dateModified\":\"2026-11-11T17:37:13.227Z\",\"keywords\":\"mcp, model context protocol, claude, chatgpt, cursor, vs code, ai assistant, agent, connector, oauth\",\"publisher\":{\"@id\":\"https://gg-labs-70a5437a.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://gg-labs-70a5437a.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Periphery\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Periphery\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/mcp/overview.md","siteName":"Periphery","nav":{"global":null,"tabs":[{"tab":"Guides","icon":"book-open","pages":[{"title":"Guides","href":""}]},{"tab":"API reference","icon":"square-terminal","pages":[{"title":"API reference","href":"/api/overview"}]},{"tab":"MCP server","icon":"plug","groups":[{"group":"AI assistants","pages":[{"title":"MCP server","href":"/mcp/overview"},{"title":"Tools and prompts","description":"Every tool and prompt the Periphery MCP server offers, what each one returns, and the errors your assistant can receive.","href":"/mcp/tools"}]}]}]},"basePath":"","title":"MCP server - Periphery","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":[],"chunks":[]}