MCP server
Use Epismo tools and resources from MCP clients, including setup, auth, sessions, and tool behavior.
The Epismo MCP server exposes pack and track operations as Model Context Protocol tools. AI clients can read reusable context from packs, then create or update task and goal tracks when work becomes actionable. The server also exposes context resources for the current user, projects, users, and agents so clients can choose the right IDs and scopes before mutating data.
When to use MCP
Use MCP when an AI client should operate Epismo directly.
| Goal | Why MCP fits |
|---|---|
| Let an agent find reusable context packs | It can call epismo_pack_search and epismo_pack_get |
| Let an agent break a plan into tasks | It can create multiple tracks with epismo_track_apply |
| Let ChatGPT or Claude read team context | OAuth and resources preserve user/workspace context |
| Let an agent update a workflow pack | Pack update tools use PATCH semantics |
Use the HTTP API for backend integrations, the CLI for local and CI workflows, and MCP for direct agent-client access.
Server identity and transport
- Server name:
epismo-mcp - Transport endpoint:
POST /for Streamable HTTP JSON-RPC - Session close:
DELETE / - Health checks:
GET /health,GET /healthz - OAuth protected resource metadata:
GET /.well-known/oauth-protected-resource - OAuth authorization server metadata:
GET /.well-known/oauth-authorization-server
Authentication
MCP clients authenticate with Authorization: Bearer <oauth_access_token>. The token must include the mcp scope. Server metadata advertises mcp and offline_access, allowing clients to refresh access tokens without forcing sign-in every time.
The client setup flow is:
- Register the Epismo MCP server URL in your MCP client.
- Complete OAuth and grant the
mcpscope. - Send the MCP initialize request.
- Store the returned session ID.
- Read resources before calling mutation tools.
Sessions
The first request is MCP initialize. The server returns an Mcp-Session-Id header and expects the client to send that header on later requests in the same session. Use DELETE / to close a session.
curl -i https://mcp.epismo.ai/ \
-H "content-type: application/json" \
-H "accept: application/json, text/event-stream" \
-H "authorization: Bearer $EPISMO_TOKEN" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"curl","version":"0.1.0"}}}'Resources
Read resources before choosing IDs for tool calls.
| URI | Contents |
|---|---|
epismo://context/current_user |
Current user/account/workspace JSON |
epismo://context/projects |
Projects accessible in the selected workspace |
epismo://context/users |
Workspace users visible to the caller |
epismo://context/agents |
Installed agents available for assignment |
Task assignees can use user IDs or agent IDs. Workflow pack step assignees use human or agent IDs only.
See Resources for payload examples and access field rules.
Pack tools
| Tool | Purpose | Cost |
|---|---|---|
epismo_pack_create |
Create workflows or contexts | 5 credits |
epismo_pack_search |
Search workflows orcontexts | 5 credits |
epismo_pack_get |
Read outline, selected nested content, or full content | 1 credit |
epismo_pack_update |
Patch a pack by UUID, alias, share URL, or hub URL | 1 credit |
epismo_pack_like |
Like or unlike a pack | 1 credit |
epismo_pack_delete |
Delete a pack and aliases you own that point to it | 1 credit |
For large packs, start with epismo_pack_get in outline mode. Use contentIndex.stepIds or contentIndex.blockIds from the response to fetch only the nested content the agent needs. Use full=true only when the client truly needs the entire pack.
See Tools for example tool arguments.
Track tools
| Tool | Purpose | Cost |
|---|---|---|
epismo_track_search |
Search tasks/goals with filters | 2 credits |
epismo_track_create |
Create a task or goal | 1 credit |
epismo_track_update |
Patch a task or goal by UUID/URL | 1 credit |
epismo_track_get |
Read one track | 1 credit |
epismo_track_apply |
Bulk create/update/delete tracks | 1 credit |
epismo_track_delete |
Delete a track | 1 credit |
epismo_track_review |
Generate a review | AI token usage |
When an agent plans multiple tasks, epismo_track_apply is usually the best tool. Non-UUID ids let the agent express dependencies within the same call.
When an agent is exploring, narrow filters first and fetch detail only for tracks that matter.
Use epismo_track_review after a task is done or a goal is completed/postponed to generate a read-only review from one or more targets, related tracks, logs, and source packs. Detailed reviews consume credits based on the underlying AI token usage.
Log tools
| Tool | Purpose | Cost |
|---|---|---|
epismo_log_create |
Append a log/comment to a track | free |
epismo_log_list |
List logs — for one track, or across every track | 1 credit |
epismo_log_delete |
Delete one log | free |
Logs attach activity, comments, and review notes to tracks without changing the track's own fields.
Credit behavior
Tool costs are listed in the tables above. Credits are consumed from the current personal/workspace context resolved by the OAuth token. If the context does not have enough credits, the tool call may fail with a credit/payment error.
Alias tools
| Tool | Purpose | Cost |
|---|---|---|
epismo_alias_upsert |
Create or repoint an alias for a pack you own | 5 credits |
epismo_alias_get |
Resolve a single alias to its pack | 1 credit |
epismo_alias_list |
List your personal and active-workspace aliases | 2 credits |
epismo_alias_delete |
Delete an alias | 1 credit |
Aliases point to packs only. Tracks are referenced by UUID or URLs containing a UUID.
Suggestion tools
| Tool | Purpose | Cost |
|---|---|---|
epismo_suggestion_create |
Send an improvement suggestion to a pack owner | 5 credits |
epismo_suggestion_get |
Read one suggestion, optionally with the snapshot | 1 credit |
epismo_suggestion_list |
List submitted, received, or per-pack suggestions | 2 credits |
epismo_suggestion_update |
Update your own suggestion | 1 credit |
epismo_suggestion_resolve |
Set the status on a suggestion you own | 1 credit |
Suggestions are text-first improvement proposals for packs. Anyone who can read a pack can create one; only the author can update it, and only the pack owner can resolve it. See Tools for parameters.
Scopes and sharing
MCP mutation tools use the same access model as the API.
{ "scope": { "type": "personal" } }{ "scope": { "type": "projects", "ids": ["project-id"] } }Search tools accept scopes, an array of personal/project scopes. Mutation tools accept sharedWith with userIds and emails. On update, omitted access fields preserve the existing record's access settings.