MCP server development for ChatGPT plugins and Claude connectors

Your customers want your product inside ChatGPT, Claude and their own agents. We build the MCP server over your API, with OAuth done to the current specification (revision 2026-07-28).

Price
USD 12,000 per engineer per month
Specification
2026-07-28 both protocol eras tested

Deciding whether you need one at all? Our guide to MCP vs API sets out when your API is enough.

The request path we build

MCP clientsChatGPT, Claude, your customers’ agents

Each client registers with a Client ID Metadata Document and signs in through OAuth with PKCE

Your MCP serverTools mapped to your API

The server checks the token’s audience and scopes, then calls your API with its own credential, never the client’s token

Your APIEvery call authorised as that user
  • Scopes
  • tickets:read
  • tickets:write asked for only when a tool needs it
An illustrative server for a ticketing API, built to the MCP 2026-07-28 specification

MCP OAuth is where remote servers fail

In a measurement study published on arXiv on 21 May 2026, 40.55% of 7,973 live remote MCP servers exposed tools with no authentication, and every one of the 119 OAuth-protected servers tested in depth had at least one flaw. So we build authorisation first and tools second. The current revision also deprecates Dynamic Client Registration in favour of Client ID Metadata Documents and replaces protocol sessions with server-minted state handles (changelog), so a server built to last year’s revision needs changes. Our guides to MCP OAuth with CIMD and the stateless migration cover both.

If you already have a server, an MCP security audit checks it against the current revision in ten working days.

What we build

A remote MCP server over your API

Streamable HTTP, with tools designed for a model to use. That means names and descriptions that say when to call them, input schemas with the constraints your API enforces, and errors an agent can act on.

OAuth that follows the specification
  • Protected resource metadata, and tokens checked for your server’s audience. Your server never forwards a token it received.
  • Client ID Metadata Documents, with Dynamic Client Registration only where a client still needs it.
  • PKCE with S256, exact redirect URI matching and an iss value in every authorization response.
  • Narrow scopes at first, with step-up challenges when a tool needs more.
State bound to the user

State handles that are random, expire and are keyed to the user ID from the verified token, so a guessed handle gets nothing.

Tool-use evals

A suite that sends your real tasks and tool definitions to the OpenAI and Anthropic models behind ChatGPT and Claude, checks which tool each picks and with which arguments, and runs in your CI. ChatGPT and Claude add their own prompts and confirmations on top, which a test through the API can’t reproduce.

Logs you can investigate with

An audit record of every tool call with the user, the client and the scopes used, and OpenTelemetry trace context, which replaces the logging utility the current revision deprecates.

ChatGPT plugin submission (formerly ChatGPT apps)

OpenAI now calls what you build and publish for ChatGPT a plugin. That’s a package holding an MCP server, skills or both, listed in one directory shared by ChatGPT and Codex. On 9 July 2026, the ChatGPT release notes announced that the Plugin Directory was replacing the App Directory. Your MCP server still reaches users as an app. OpenAI’s Help Center says a plugin can include one or more apps, and some accounts still show Apps where others show Plugins.

You upload the plugin as a ZIP in OpenAI’s plugin submission portal, connect your server’s public HTTPS URL, pass a domain-verification check and an automated scan of every tool, then submit for review. Once OpenAI approves it, you choose when to publish. After that, OpenAI scans the server daily, and new or changed tools go live once they pass automated checks. OpenAI chooses which plugins appear on the directory’s main pages.

OpenAI’s review requires:

  • Individual or business verification of the name you publish under. An unverified name is rejected.
  • For a server that signs users in, OAuth 2.1 to the MCP authorization specification, with PKCE S256. ChatGPT prioritises Client ID Metadata Documents (CIMD), where the client identifies itself with a URL instead of registering, and also accepts Dynamic Client Registration (DCR) or a predefined OAuth client. The portal has no API-key option.
  • readOnlyHint, destructiveHint and openWorldHint set to true or false on every tool, and each operation exposed as its own tool, with no generic executor.
  • Website, support, privacy policy and terms of service URLs. The privacy policy must say what personal data you collect, why, who receives it, how long you keep it and what controls users have.
  • A test account with sample data that signs in without MFA, five positive and three negative test cases, and a video walkthrough.
  • A project with global data residency, because OpenAI projects with EU data residency can’t yet submit plugins with MCP servers.
  • No sales of digital goods, no advertising and no money transfers.

Claude connector and plugin submission

Anthropic’s documentation says that to bring your product into Claude you build a plugin, and that people see the MCP server inside it as a connector (at their launch on 1 May 2025, Anthropic called them Integrations). When Anthropic opened its directory submission portal on 25 September 2026, it called plugins “the main way to build third-party extensions for Claude”.

The Claude directory takes two kinds of submission, either a plugin bundle from a GitHub repository or an MCP connector submitted by its URL. Anthropic asks you to submit a remote server as a connector even when your plugin already references it. Anyone on a paid Claude plan can submit, but on Team and Enterprise plans an Owner submits. Each connector is scanned automatically and listed as Community by default, and Anthropic may escalate it to Verified review, in which a reviewer tests every tool. The directory no longer accepts local servers packaged as desktop extensions (MCPB).

Anthropic’s review checks:

  • OAuth 2.0 for any server that acts on a user’s account, with PKCE S256. DCR and CIMD both work by default, but Claude uses CIMD only when your authorization server advertises it together with the none token endpoint method.
  • A 401 response that points to your protected resource metadata, Claude’s fixed callback URL for its hosted apps, and a loopback redirect on any port for Claude Code.
  • A title and readOnlyHint or destructiveHint on every tool, tool names of 64 characters or fewer, and separate tools for reads and writes.
  • Tool descriptions that say what the tool does, with no hidden instructions and nothing that steers Claude towards or away from other tools.
  • A documentation URL, a privacy policy URL, a support contact and test credentials for a fully populated account.
  • At least three working example prompts, and calls only to your own APIs or ones you legitimately proxy.
  • No tools that move money or generate images, video or audio with AI models.

What ChatGPT and Claude both require

Both platforms require these, so we build them before any tool:

  • OAuth with PKCE S256 and protected resource metadata. Neither ChatGPT nor Claude supports a machine-to-machine client credentials grant.
  • CIMD, advertised with the none token endpoint method so both platforms can use it, and DCR kept as the fallback. The current MCP revision deprecates DCR but keeps it for compatibility.
  • ChatGPT’s and Claude’s redirect URIs on your authorization server’s allowlist.
  • No generic executors or catch-all tools. Each operation gets its own tool, with readOnlyHint and destructiveHint set, plus openWorldHint for ChatGPT and title for Claude. These say whether a tool writes and whether the write is destructive, and Claude asks before every destructive call. The specification makes annotations optional, but both reviews check them.
  • A reviewer account with sample data, and a published privacy policy (OpenAI, Anthropic).

Two ways to start

Review the server you have

An MCP security audit of your server, covering its OAuth flow, every tool, and evals of how agents use it. Ten working days, USD 10,000, with a written verdict.

Build a new one

Our engineers build it at the forward deployed engineer rate of USD 12,000 per engineer per month. We estimate the months before we start and you approve the milestones for each one.

What we don’t control

Some controls belong to the host, not to your server, such as SSRF checks during OAuth discovery, validating authorization URLs and asking the user before risky actions. ChatGPT and Claude decide those. We can prepare your submission to their directories, but we can’t promise that OpenAI or Anthropic will approve it. And we don’t run your identity provider. We configure the one you have.

Guides for building MCP servers

  • MCP OAuth and CIMD authorization on the 2026-07-28 spec

    How MCP OAuth works on the 2026-07-28 spec, covering discovery, Client ID Metadata Documents, PKCE, iss and scopes, with conformance tests.

    Published , about 14 minutes to read

  • How to test an MCP server, from MCP Inspector to CI

    How to test a remote MCP server on the 2026-07-28 spec, with conformance, contract and auth tests, tool-use evals and CI steps we ran locally.

    Published , about 29 minutes to read

  • MCP stateless migration checklist for the 2026-07-28 spec

    A 12-step checklist for moving a remote MCP server to the stateless 2026-07-28 spec, with a check per step, keeping 2025 clients working.

    Published , about 14 minutes to read

Tell us which API your customers’ agents should reach

Send the API documentation or your current server’s URL. We reply within one working day with how we’d build or test it.