8seneca Projects MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PLANE_API_KEY | Yes | Your Plane API token. You can generate one from the Workspace Settings > API Tokens page (/settings/api-tokens/) in the Plane app. | |
| PLANE_API_HOST_URL | No | The host URL of the Plane API Server. For this fork: https://projects.8seneca.com. Defaults to https://api.plane.so/ if unset, which is not what you want here. | https://api.plane.so/ |
| PLANE_WORKSPACE_SLUG | Yes | The workspace slug for your Plane instance. The workspace-slug represents the unique workspace identifier for a workspace in Plane. It can be found in the URL. |
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 |
|---|---|
| list_issue_typesC | Get all issue types for a specific project |
| get_issue_typeC | Get details of a specific issue type |
| create_issue_typeC | Create a new issue type in a project |
| update_issue_typeC | Update an existing issue type |
| delete_issue_typeC | Delete an issue type |
| list_statesC | Get all states for a specific project |
| get_stateC | Get details of a specific state |
| create_stateC | Create a new state in a project |
| update_stateC | Update an existing state |
| delete_stateC | Delete a state |
| list_labelsC | Get all labels for a specific project |
| get_labelC | Get details of a specific label |
| create_labelC | Create a new label in a project |
| update_labelC | Update an existing label |
| delete_labelC | Delete a label |
| get_userB | Get the current user's information |
| get_workspace_membersA | Get all members in the current workspace |
| get_projectsA | Get all projects for the current user |
| create_projectC | Create a new project |
| get_project_summaryA | 8seneca fork: get a project's counts — how many work items, modules, cycles, states, members, pages, labels and intakes it holds. Cheaper than listing each. This requests project_id as uuid parameter. If you have a readable identifier for project, you can use the get_projects tool to get the project_id from it |
| list_modulesC | Get all modules for a specific project |
| get_moduleB | Get details of a specific module |
| create_moduleC | Create a new module in a project |
| update_moduleC | Update an existing module |
| delete_moduleC | Delete a module |
| list_module_issuesB | Get all issues for a specific module |
| add_module_issuesC | Add issues to a module. Assign module to issues. |
| delete_module_issueC | Remove an issue from a module. Unassign module from issue. |
| list_project_issuesA | Get all issues for a specific project. This requests project_id as uuid parameter. If you have a readable identifier for project, you can use the get_projects tool to get the project_id from it |
| get_issue_using_readable_identifierB | Get a specific issue using its readable identifier. When issue identifier is provided something like FIRST-123, ABC-123, etc. For FIRST-123, project_identifier is FIRST and issue_identifier is 123 |
| get_issue_commentsA | Get all comments for a specific issue. This requests project_id and issue_id as uuid parameters. If you have a readable identifier, you can use the get_issue_using_readable_identifier tool to get the issue_id and project_id |
| add_issue_commentA | Add a comment to a specific issue. This requests project_id and issue_id as uuid parameters. If you have a readable identifier, you can use the get_issue_using_readable_identifier tool to get the issue_id and project_id |
| create_issueB | Create an issue. This requests project_id as uuid parameter. If you have a readable identifier for project, you can use the get_projects tool to get the project_id from it |
| update_issueB | Update an issue. This requests project_id and issue_id as uuid parameters. If you have a readable identifier, you can use the get_issue_using_readable_identifier tool to get the issue_id and project_id |
| list_cyclesC | Get all cycles for a specific project |
| get_cycleC | Get details of a specific cycle |
| create_cycleC | Create a new cycle in a project |
| update_cycleC | Update an existing cycle |
| delete_cycleC | Delete a cycle |
| transfer_cycle_issuesC | Transfer issues from one cycle to another |
| list_cycle_issuesC | Get all issues for a specific cycle |
| add_cycle_issuesC | Add issues to a cycle |
| delete_cycle_issueC | Remove an issue from a cycle |
| list_project_viewsA | Get all saved views for a project. A view is a named, filtered work item list. This requests project_id as uuid parameter. If you have a readable identifier for project, you can use the get_projects tool to get the project_id from it |
| get_viewA | Get a specific saved view. This requests project_id and view_id as uuid parameters. If you do not have the view_id, use the list_project_views tool to find it |
| create_viewA | Create a saved view in a project. Requires project Admin or Member role. Pass rich_filters to make the view open filtered — without it the view saves but shows every work item |
| update_viewA | Update a saved view. This requests project_id and view_id as uuid parameters. If you do not have the view_id, use the list_project_views tool to find it |
| delete_viewA | Delete a saved view. This requests project_id and view_id as uuid parameters. Only the view's owner or a project Admin may delete it |
| get_project_docsA | Read a page of a project's published docs site. Returns the raw file the project publishes at that path — HTML for a page. Omit path to get the site's index. Only projects with docs_view enabled and a published build have any; others return a 404. There is no path listing, so follow the links in the index to reach other pages |
| get_issue_worklogsC | Get all worklogs for a specific issue |
| get_total_worklogsC | Get total logged time for a project |
| create_worklogC | Create a new worklog for an issue |
| update_worklogC | Update an existing worklog |
| delete_worklogC | Delete a worklog |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 54 tools
Most tools follow a clear CRUD-per-resource structure, so list/get/create/update/delete operations are easy to tell apart. A few names like delete_module_issue and delete_cycle_issue could be mistaken for deleting the issue itself, but the descriptions clarify the link-removal semantics.
The dominant verb_noun snake_case pattern is consistent and predictable across the majority of tools. Outliers like get_issue_using_readable_identifier and delete_module_issue break the pattern, but they are few relative to the 54-tool surface.
54 tools is far above a typical well-scoped MCP surface and would be better split into focused servers by resource family. The CRUD organization makes it navigable, but the sheer size creates significant selection and context overhead for an agent.
Several resource families have full CRUD, but the central issue resource lacks delete_issue and there is no generic get_issue by UUID. Comment operations only cover read/add, and project update/delete are missing, leaving notable dead ends for common workflows.