When to use Product MCP
Use a Product MCP when you want to give your customers and their AI agents an MCP front door to your product without building and operating an MCP server yourself.- You already have an HTTP API documented with OpenAPI and a way to authenticate users (bearer token, API key header, or query parameter).
- You want to expose that API as MCP tools without maintaining a separate MCP service, transport layer, or tool catalog.
- Your callers should authenticate as themselves — using whatever credential they already use against your product — rather than through an Armature-issued token.
How it works
- The caller sends an MCP request to your public Product MCP URL and includes their product API credential in the header or query parameter you configured.
- Armature extracts the credential, validates it against your product API (if you opted into validation), and serves
tools/listplus the OpenAPI-derived tool schemas. - When the caller invokes a tool, Armature dispatches an HTTP call against your upstream API, forwarding the caller’s credential in the location and format you configured.
What you configure
Every Product MCP has four parts you manage from the Product MCPs page in the dashboard.Endpoint
A name and a slug. The slug becomes the path on
mcp.<org-slug>.armature.tech/<slug>. The base URL points at your product API (must be https://).API docs
An OpenAPI document that describes the operations you want to expose. Armature parses it into MCP tools, capability descriptions, and a search index. Re-upload to refresh.
API Connection
How callers send their credential to your MCP endpoint, and how Armature forwards it upstream. Configurable per endpoint.
Activation
A Product MCP only goes live after API docs and an API Connection are both configured. You can pause and resume it at any time.
Authentication modes
When you configure the API Connection, you pick:- Credential location — where the caller sends their credential. Either an HTTP header (default
Authorization) or a query parameter (defaultapi_key). - Token format —
bearer(expectsBearer <token>) orraw(the value as-is). - Upstream forwarding —
sameto forward the credential to the upstream API in the same location and format the caller used, orcustomto remap it to a different header/parameter and format. - Validation mode — see below.
Validation modes
| Mode | What Armature does | When to use |
|---|---|---|
validate_before_tools (default) | Calls your validation endpoint with the caller’s credential before serving tools/list or any tool call. Bad credentials get 401 and never see your tool catalog. | Recommended for all production deployments. |
presence_only | Accepts any well-formed credential and forwards it upstream without validating. Your upstream API is the only line of defense. | Only when you cannot expose a validation endpoint. Requires explicit confirmation of the security trade-off. |
2xx as valid, 401/403 as invalid, and network failures or 5xx as fail-closed (503 to the caller).
Example: configuring a Product MCP
This example exposes the API behindhttps://api.acme.example.com as a Product MCP. Callers send Authorization: Bearer <token>; Armature validates the token against /v1/me before serving tools and forwards the same header upstream.