EasyTopic MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| EASYTOPIC_BOARD_ID | Yes | Board ID | |
| EASYTOPIC_BOT_EMAIL | Yes | Bot account email | |
| EASYTOPIC_COMPANY_ID | Yes | Company ID | |
| EASYTOPIC_PROJECT_ID | Yes | Project ID | |
| EASYTOPIC_BOT_PASSWORD | Yes | Bot account password (the real secret) | |
| EASYTOPIC_PLAN_FIELD_KEY | No | Custom field key for Plan | plan |
| EASYTOPIC_DONE_STATUS_KEY | No | Status key for Done | done |
| EASYTOPIC_FIREBASE_APP_ID | Yes | Firebase app ID | |
| EASYTOPIC_TODO_STATUS_KEY | No | Status key for ToDo | todo |
| EASYTOPIC_FIREBASE_API_KEY | Yes | Firebase API key | |
| EASYTOPIC_PLANNED_STATUS_KEY | No | Status key for Planned | planned |
| EASYTOPIC_APPROVED_STATUS_KEY | No | Status key for Approved | approved |
| EASYTOPIC_FIREBASE_PROJECT_ID | Yes | Firebase project ID | |
| EASYTOPIC_PLANNING_STATUS_KEY | No | Status key for Planning | planning |
| EASYTOPIC_FIREBASE_AUTH_DOMAIN | Yes | Firebase Auth domain | |
| EASYTOPIC_IN_PROGRESS_STATUS_KEY | No | Status key for In Progress | in_progress |
| EASYTOPIC_FIREBASE_STORAGE_BUCKET | Yes | Firebase storage bucket | |
| EASYTOPIC_FIREBASE_MESSAGING_SENDER_ID | Yes | Firebase messaging sender ID |
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 |
|---|---|
| easytopic_whoamiA | Authenticates against EasyTopic and returns the bot's identity plus the configured company/project/board/status-key/plan-field settings. Call this first in every run — if it errors, stop immediately (auth/config problem), do not attempt any workaround. |
| easytopic_list_topicsA | Lists Topics in the configured company/project whose currentStatusKey is one of the given statusKeys, oldest-updated first. Use the configured todoStatusKey/planningStatusKey/plannedStatusKey/approvedStatusKey/inProgressStatusKey/doneStatusKey values from easytopic_whoami. |
| easytopic_get_topicA | Fetches one Topic in full: title, description (the prompt), custom field values (incl. the plan field), current status, the subset of workflow transitions currently legal from this status, all comments oldest-first, and awaitingHumanReply (true if the bot's own question is still the most recent comment — do not re-ask, wait for a reply). |
| easytopic_add_commentA | Posts a comment on a Topic — the only channel to communicate with the human (questions, progress notes, completion summaries). The human is notified automatically. |
| easytopic_write_planA | Writes the implementation plan into the Topic's configured plan custom field (versioned, recorded in Topic History). Call this before transitioning a Topic out of the todo status — write the plan first, then transition. |
| easytopic_transition_statusA | Moves a Topic to a new status via the matching Workflow transition (runs the same beforeChecks the human UI runs, e.g. requiredFieldsFilled). Errors use the same vocabulary as the app: a WorkflowCheckId (assigneeRequired/dueDateRequired/descriptionRequired/requiredFieldsFilled), notProjectAdmin, hasActiveConflict, or noMatchingTransition. Status lifecycle convention (created -> todo -> planning -> planned -> approved -> in_progress -> done -> closed): you may set planning/planned yourself once you start/finish planning, and in_progress/done yourself once you start/finish the work. Never set the approved status yourself unless the human has given explicit approval via a Topic comment or directly in conversation — otherwise wait for them to set it. Never set the closed status yourself under any circumstance — that is the human's exclusive final sign-off after verifying the work. |
| easytopic_list_doc_projectsA | Lists every Documentation Project (Project.isDocumentationProject === true) in the configured company that the bot currently participates in. A Documentation Project holds its content as a tree of publishable Topics (see easytopic_list_doc_tree/easytopic_get_doc_page). The bot only sees a Project here once a human has added it as a Project participant in that Project's settings — company employment alone is not enough (Firestore rules require real participancy for list queries). To also create new pages (easytopic_create_doc_page) or read the Project's FULL existing tree, the bot needs to be added as an ADMIN participant specifically, not just a member — see CLAUDE.md's participancy/admin-visibility notes. |
| easytopic_list_doc_treeA | Lists every page (Topic) the bot can see in the given Documentation Project, flattened, ordered by sortOrder within each parent — use parentTopicId to reconstruct the tree (null = top-level page). Returns id/title/parentTopicId/isPublic only; call easytopic_get_doc_page for a page's actual content. Get projectId from easytopic_list_doc_projects. |
| easytopic_get_doc_pageA | Fetches one Documentation page (Topic) in full: title, description (the page's rich-text HTML body), parentTopicId, isPublic, metaDescription, and its direct child pages (id/title only). Get projectId from easytopic_list_doc_projects and topicId from easytopic_list_doc_tree. |
| easytopic_write_doc_pageA | Updates an existing Documentation page's title and/or rich-text HTML content (descriptionHtml) and/or metaDescription. Only fields you pass are touched; title/descriptionHtml changes are versioned into Topic History like every other Topic edit, metaDescription is not. Requires the bot to already be a participant of the page's Project (see easytopic_list_doc_projects) — does not require admin. |
| easytopic_create_doc_pageA | Creates a new Documentation page (Topic) under the given parent (null = top-level page) in a Documentation Project. Firestore rules only allow Topic creation by a Project ADMIN (no plain-participant fallback) — this tool checks that up front and returns { error: "notProjectAdmin" } instead of a raw permission error if the bot is only a member. Ask the human to promote the bot to admin on that Project's participants if you hit this. |
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/EB-CON-GmbH/easytopic-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server