MCP server · auth · triggers

Connect your agents to GitHub, Vercel, Slack and every other API through one MCP URL

Your users sign in to each app on prompt-tm.com. We keep their OAuth tokens and API keys encrypted, refresh them, and run the calls. The agent gets typed tools and never sees a credential.

.mcp.json
{
  "mcpServers": {
    "prompt-tm": {
      "type": "http",
      "url": "https://www.prompt-tm.com/mcp/mcp_k3x9…?user_id=alice",
      "headers": { "x-api-key": "ptm_…" }
    }
  }
}
agent ↔ prompt-tm
> tools/call GITHUB_CREATE_ISSUE
  { "owner": "acme", "repo": "web", "title": "Checkout 500 on Safari" }

< { "successful": true,
    "data": { "number": 128, "html_url": "https://github.com/acme/web/issues/128" },
    "log_id": "log_7f2…" }
Works withClaude CodeClaude Desktopclaude.aiCursorVS CodeWindsurfOpenAI Agents SDKAny MCP client
toolkits
34
tools
348
triggers
10
MCP URL
1

How it works

Three steps from API key to agent tool

  1. 01

    Pick the apps

    Add an auth config per app: our OAuth app, your own OAuth client, or an API key form. Scopes and allowed tools are set per config.

  2. 02

    Send your user a connect link

    The link opens a page on prompt-tm.com where the user signs in to the app or pastes a key. You get a connected account id back, or a callback to your app.

  3. 03

    Point the agent at the MCP URL

    Paste one URL into Claude, Cursor or your own agent. It lists the user's tools, and every call runs with that user's account.

Platform

The parts every agent integration needs, built once

Auth management on our side

OAuth 2.0 with PKCE, API keys, bearer tokens and basic auth. Tokens are sealed with AES-256-GCM, refreshed before they expire, and marked expired when a provider refuses. You get a webhook when that happens.

A router for open-ended agents

The router endpoint exposes five meta tools instead of hundreds of definitions. The agent searches the catalogue, asks the user to connect an app, waits, and runs up to 20 tools in parallel.

Triggers that register themselves

Switch on a GitHub or Stripe trigger and we create the webhook in that account, check every delivery's signature, and forward the event to your URL signed with your project secret.

A log line for every call

Each execution records the tool, user, account, duration and a trimmed copy of the request and response, with secrets masked. Filter by app, tool, user or status.

REST when you don't want MCP

Execute any tool with one POST, or fetch the tool list already shaped for the OpenAI or Anthropic SDK. A proxy endpoint makes raw calls with a user's auth for anything a tool doesn't cover.

Many users, many accounts

Each end user is a user_id you choose. A user can hold several accounts per app, named with an alias, and you can pin a call to one of them.

REST API

The same tools without MCP

Every tool is one POST. The answer always has the same four fields, so your agent loop handles any app the same way. Ask for the tool list with format=anthropic or format=openai and pass it straight to the SDK.

API reference
terminal
curl -X POST https://www.prompt-tm.com/api/v3/tools/execute/VERCEL_LIST_DEPLOYMENTS \
  -H "x-api-key: $PROMPT_TM_KEY" \
  -H "content-type: application/json" \
  -d '{ "user_id": "alice", "arguments": { "limit": 5, "target": "production" } }'

FAQ

Questions developers ask first

Give your agent its first tool in five minutes

Create a project, paste a GitHub token, copy the MCP URL into Claude Code. That is the whole setup.

Create a free project