Claude

Add Aceversity to Claude as a custom connector (claude.ai, Claude Desktop, mobile), to Claude Code, or to your own app through the Claude API's MCP connector.

Claude talks to Aceversity through the MCP server at https://api.aceversity.com/mcp. The member signs in with OAuth, so no keys are pasted anywhere.

claude.ai and Claude Desktop

  1. In Claude, open Settings → Connectors and choose Add custom connector. (On Team and Enterprise plans an owner adds it under organization connector settings first.)
  2. Name: Aceversity · URL: https://api.aceversity.com/mcp. Leave the OAuth client ID/secret fields empty — Claude registers itself.
  3. Press Connect. A window opens on https://api.aceversity.com/oauth/authorize: sign in with your Aceversity email code or password, check the scopes, press Allow.
  4. In a chat, enable Aceversity from the tools menu and ask something.

Connectors added on claude.ai are available in Claude Desktop and the mobile apps for the same account.

Prompts to try

Claude will ask before running tools marked destructive (deleting a course, item, deck or grade).

Claude Code

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

Then run /mcp inside Claude Code, pick aceversity and Authenticate to complete the OAuth sign-in in your browser.

For headless use (CI, a server), pass an API key instead of OAuth:

claude mcp add --transport http aceversity https://api.aceversity.com/mcp \
  --header "Authorization: Bearer $ACEVERSITY_API_KEY"

Or check a project-scoped config into .mcp.json (the key stays in your environment):

{
  "mcpServers": {
    "aceversity": {
      "type": "http",
      "url": "https://api.aceversity.com/mcp",
      "headers": { "Authorization": "Bearer ${ACEVERSITY_API_KEY}" }
    }
  }
}

Claude API (Messages API MCP connector)

Your backend can let Claude call Aceversity tools during a Messages API request. Pass the member's OAuth access token (or their API key) as authorization_token. Both halves are required: the server in mcp_servers and an mcp_toolset entry in tools, with the mcp-client-2025-11-20 beta header.

curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: mcp-client-2025-11-20" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-opus-5-5",
    "max_tokens": 16000,
    "mcp_servers": [{
      "type": "url",
      "url": "https://api.aceversity.com/mcp",
      "name": "aceversity",
      "authorization_token": "'"$ACEVERSITY_ACCESS_TOKEN"'"
    }],
    "tools": [{ "type": "mcp_toolset", "mcp_server_name": "aceversity" }],
    "messages": [{ "role": "user", "content": "What do I have due this week?" }]
  }'

The token is your responsibility to refresh — access tokens last an hour (see Authentication).

Troubleshooting

Symptom Cause / fix
"Couldn't connect" right after adding The server must be reachable over public HTTPS. Check https://api.aceversity.com/health. For local testing use a tunnel — see Testing.
OAuth window says unknown client_id A stale registration — remove the connector and add it again.
OAuth window says the redirect address wasn't registered The client changed callback URLs; remove and re-add the connector.
Tools fail with membership_required The Aceversity account has no active membership.
Edits fail with insufficient_scope The member unticked Edit on the consent screen. Disconnect at https://api.aceversity.com/keys and connect again.
Connector disappeared from https://api.aceversity.com/keys It was disconnected; Claude will prompt to reconnect.