kanka-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KANKA_TIER | No | ‘free’ or ‘subscriber’, auto-detected from /profile | |
| KANKA_TOKEN | No | Kanka Personal API token (one of token or OAuth required) | |
| KANKA_BASE_URL | No | Override the API base (for testing) | |
| KANKA_LOG_LEVEL | No | Log level: trace, debug, info, warn, error, fatal | |
| KANKA_TOKEN_FILE | No | Fallback token file location | |
| KANKA_OAUTH_BASE_URL | No | Override the OAuth host (for testing) | |
| KANKA_OAUTH_CLIENT_ID | No | OAuth app client id (register at app.kanka.io/settings/api-apps) | |
| KANKA_OAUTH_TOKEN_FILE | No | Where access + refresh tokens are persisted | |
| KANKA_MAX_RESPONSE_BYTES | No | Hard cap on response body size | |
| KANKA_RATE_LIMIT_PER_MIN | No | Hard override on rate-limit bucket capacity | |
| KANKA_REQUEST_TIMEOUT_MS | No | Per-request HTTP timeout in milliseconds | |
| KANKA_OAUTH_CLIENT_SECRET | No | OAuth app client secret | |
| KANKA_OAUTH_REDIRECT_PORT | No | Pin the loopback callback port |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| kanka_auth_statusA | Check whether the server has a usable Kanka credential and where it came from (env var, token file, OAuth, or none). Call this first if other tools return AUTH_REQUIRED — it'll tell you what's missing. |
| kanka_oauth_loginA | Run the OAuth 2.0 Authorization Code flow with PKCE. Opens a browser to the Kanka authorize page; on approval, persists access + refresh tokens to disk so subsequent tool calls authenticate transparently. Requires an OAuth app registered at https://app.kanka.io/settings/api?clients=1. Provide client_id/client_secret here or via KANKA_OAUTH_CLIENT_ID / KANKA_OAUTH_CLIENT_SECRET env vars. |
| kanka_auth_logoutA | Clear stored OAuth tokens (access + refresh). Personal API token configured via env or file is unaffected. |
| kanka_list_campaignsA | Discover which Kanka campaigns the authenticated user can access. Call this first to find the |
| kanka_get_campaignB | Fetch metadata for a single campaign by id. |
| kanka_describe_entity_typeA | Return the JSON Schema for the create/update payload of a Kanka entity type. Call this before kanka_create_entity or kanka_update_entity to discover required and optional fields. |
| kanka_searchA | Find entities by NAME within a campaign — fast, server-side, but matches names only (no entry/body text). Prefer this when you know the entity name. For matching against entry text, use kanka_full_text_search instead. For listing/browsing, use kanka_list_entities. |
| kanka_full_text_searchA | Search across the body text (entry HTML) of entities by paginating typed list endpoints, stripping HTML, and matching locally. Costs API budget — narrow |
| kanka_list_entitiesA | Browse a campaign's entities. Use this to enumerate, page through, or filter by type / name / tags. For looking up a specific entity by id, prefer kanka_get_entity. For text-content search, use kanka_full_text_search. Incremental sync: pass |
| kanka_get_entityB | Fetch a single entity by either its type-scoped id (requires entity_type) OR its global entity_id. The dual-ID system is resolved transparently: if you only know entity_id, the resolver will discover the type and fetch the typed record. |
| kanka_create_entityA | Create a new entity. Call kanka_describe_entity_type first to discover the per-type schema for |
| kanka_update_entityA | Partial update (PATCH) on an existing entity. Provide only the fields you want to change. The |
| kanka_delete_entityA | Permanently delete an entity. Requires |
| kanka_postsA | List, read, create, update, or delete the posts (sub-notes) attached to an entity. Posts hang off the GLOBAL entity_id, not the type-scoped id. Provide |
| kanka_relationsA | List, read, create, update, or delete relations between entities. Relations hang off the GLOBAL entity_id of the source. The |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/torinvdb/kanka-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server