# Morphed auth.md

How an AI agent gets access to Morphed. Last reviewed: 2026-10-26.

## Audience

AI assistants and agents (for example ChatGPT, Claude or a custom MCP client) acting for a person who already has a Morphed account. Morphed does not issue standalone agent identities or API keys through this page: an agent always acts as a signed-in Morphed user and can reach only the customer accounts that user can reach.

## Public content: no credentials

These need no token and may be read freely:

- https://morphed.io/llms.txt and https://morphed.io/llms-full.txt
- https://morphed.io/.well-known/mcp/server-card.json
- https://morphed.io/.well-known/api-catalog
- https://morphed.io/.well-known/agent-skills/index.json
- The public website pages listed in https://morphed.io/sitemap.xml

## Customer data: the Morphed MCP server

Protected resource: `https://mcp.morphed.io/mcp` (MCP Streamable HTTP).

1. Discover. Call the MCP endpoint without a token. It answers `401` with `WWW-Authenticate: Bearer resource_metadata="https://mcp.morphed.io/.well-known/oauth-protected-resource/mcp"`. That document names the authorization server `https://mcp.morphed.io`, whose metadata is at `https://mcp.morphed.io/.well-known/oauth-authorization-server`.
2. Register the client. Use OAuth 2.0 Dynamic Client Registration (RFC 7591): `POST https://mcp.morphed.io/oauth/register` with your `client_name` and `redirect_uris`. Public clients (`token_endpoint_auth_method: none`) and `client_secret_post` are supported.
3. Get the user's consent. Send the user to `https://mcp.morphed.io/authorize` with the authorization code flow and PKCE (`code_challenge_method=S256`). The user signs in to Morphed and approves the request.
4. Exchange the code at `https://mcp.morphed.io/token`. Refresh tokens are supported (`grant_type=refresh_token`).
5. Call the MCP server with `Authorization: Bearer <access token>`.

Scopes: `openid`, `email`, `mcp:tools`, `mcp:prompts`, `mcp:resources`.

## What the credential allows

- Read-only tools run straight away for the portals the user can reach.
- Anything that changes data is held until a person approves it in Morphed. Tell the user it is waiting for approval and do not retry it.
- Morphed never writes to a customer system without that approval.

## Revoking access

The user can revoke an agent's access by disconnecting the connector in the AI client, or by asking Morphed support. Contact graeme.wilson@morphed.io for access questions and dpo@morphed.io for security reports.
