Setup guide

Connect maett over MCP

maett exposes your fitness data through the Model Context Protocol. Connections use OAuth: your MCP client opens maett in your browser, you sign in, review the requested access, and approve it. There are no API keys or tokens to copy.

The endpoint

Add this Streamable HTTP endpoint to any remote MCP client:

https://maett.com/api/mcp

The client discovers maett's OAuth authorization server automatically. When the browser opens, sign in to maett and select Allow. The resulting access is limited to your account and the scopes shown on the consent screen.

Fresh data on request

Connected AI clients can ask maett to refresh one fitness source or all of them when a recent workout or recovery reading is missing. Updates run in the background and usually take a few minutes to appear.

To protect provider APIs, each source has its own cooldown: 24 hours on Free, 6 hours on Lite, and 1 minute on Pro. The AI receives the exact next eligible time if a source is still cooling down.

Claude Code and desktop clients

For clients with a command-line setup, add the endpoint without custom headers:

claude mcp add --transport http maett https://maett.com/api/mcp

A file-based client configuration typically looks like this:

{
  "mcpServers": {
    "maett": {
      "type": "http",
      "url": "https://maett.com/api/mcp"
    }
  }
}

Open the client's MCP or tools view after saving. Choose Connect or Authenticate if the browser does not open automatically, then complete the maett consent screen.

ChatGPT, Claude.ai, and other web clients

  1. Open the client's connectors or integrations settings.
  2. Add a custom remote MCP server named maett.
  3. Enter https://maett.com/api/mcp as the server URL.
  4. Choose OAuth or Automatic authentication if the client asks. Do not choose a bearer-token option.
  5. Continue in the browser, sign in to maett, and approve the requested access.

Menu names and plan availability vary by client. The important parts are support for remote Streamable HTTP MCP servers and OAuth discovery.

How authentication works

maett follows the MCP authorization flow built on OAuth 2.1. An unauthenticated request receives an RFC 9728 protected-resource challenge. The client discovers the authorization and token endpoints, registers itself, and completes an authorization-code flow with PKCE.

Access and refresh tokens are handled by the MCP client. You never need to reveal one manually. You can review and disconnect clients at any time under Settings → Authorized apps.

Troubleshooting

  • No browser window appears.Open the client's server details and select Authenticate or Reconnect.
  • The client asks for a bearer token. Switch its authentication mode to OAuth or automatic discovery. maett does not issue personal API keys.
  • Authorization was denied or expired. Remove the connection from the client, add the endpoint again, and complete the browser flow.
  • Tool calls return no data. Connect at least one fitness provider and let its first sync finish.
  • The client rejects the URL. Confirm that it supports remote Streamable HTTP servers and OAuth-protected MCP endpoints.