runn-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RUNN_DRY_RUN | No | Write safety. When true, write tools only preview. | true |
| RUNN_API_TOKEN | Yes | Bearer token for the Runn API. | |
| RUNN_API_VERSION | No | Sent as the mandatory Accept-Version header. | 1.0.0 |
| RUNN_API_BASE_URL | No | API base URL (use https://api.us.runn.io for the US region). | https://api.runn.io |
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 |
|---|---|
| runn_server_infoA | Returns the runn-mcp server version and effective configuration (base URL, API version, whether a token is configured, dry-run state). Does NOT reveal the token and does NOT call the Runn API. |
| runn_whoamiA | Verify the token/account by calling GET /me. Returns the authenticated identity. |
| runn_list_projectsA | List projects. Optional case-insensitive name substring filter and archived toggle. |
| runn_get_projectA | Fetch a single project by ID (GET /projects/{id}). |
| runn_list_phasesA | List project phases. With projectId, lists that project's phases (GET /projects/{id}/phases); without it, lists phases across all projects. |
| runn_list_milestonesA | List milestones. With projectId, lists that project's milestones (GET /projects/{id}/milestones); without it, lists milestones across all projects. |
| runn_list_assignmentsA | List assignments, filterable by project, person, role and date range. |
| runn_list_peopleC | List people. Optionally include placeholders and filter by name/email/externalId. |
| runn_list_placeholdersB | List placeholders (unfilled roles used to allocate external/contractor work). |
| runn_list_rolesA | List roles (for resolving roleId values used in assignments/actuals). |
| runn_list_workstreamsC | List workstreams. |
| runn_list_actualsB | List actual (timesheet) entries, filterable by project, person, role, workstream and date range. |
| runn_report_hours_projectB | By-day plan-vs-actual hours for a project (GET /reports/hours/projects/{id}). billableMinutes/totalMinutes use actuals where present, else assignments. |
| runn_report_hours_personC | By-day plan-vs-actual hours for a person (GET /reports/hours/people/{id}). |
| runn_report_totals_projectB | Aggregated plan/actual minutes for a project (GET /reports/totals/projects/{id}). Returns a single totals object (no pagination). |
| runn_create_phaseA | Create a phase on a project (POST /projects/{id}/phases). name, startDate, endDate required; color must be one of Runn's allowed hex values (defaults to #67D0D5). |
| runn_update_phaseA | Update a phase (PATCH /projects/{id}/phases/{phaseId}). Only provided fields are changed. |
| runn_delete_phaseA | Delete a phase (DELETE /projects/{id}/phases/{phaseId}). Intended for removing a phase AFTER its actuals/assignments have been migrated elsewhere. May fail if the phase still has attached data — migrate first. |
| runn_create_milestoneA | Create a milestone on a project (POST /projects/{id}/milestones). title, icon, date required. icon may be a preset (start|end|flag|dollar|warning) or an emoji. |
| runn_update_milestoneA | Update a milestone (PATCH /projects/{id}/milestones/{milestoneId}). Only provided fields change. |
| runn_create_assignmentA | Create an assignment (POST /assignments). Required: personId, projectId, roleId, startDate, endDate, minutesPerDay. Note: the response may contain multiple segments if the period overlaps leave. |
| runn_delete_assignmentA | Delete an assignment by ID (DELETE /assignments/{id}). This is a hard delete. |
| runn_create_projectA | Create a project (POST /projects). Standard mode requires name + clientId. Alternatively pass fromTemplate { templateId, startDate } to duplicate a template. |
| runn_update_projectA | Update a project (PATCH /projects/{id}). Only provided fields change. |
| runn_create_placeholderA | Create a placeholder (POST /placeholders) for allocating external/contractor work. Only roleId is required; the placeholder is auto-named after the role (e.g. 'Content creator Placeholder NN'). To give it a real name, follow up with runn_update_person on the returned id. NOTE: a placeholder with no project/assignment is deleted by Runn within 24 hours. |
| runn_update_personA | Update a person or placeholder (PATCH /people/{id}). Use to rename a freshly created placeholder (firstName/lastName), change email/team, or archive. Only provided fields change. |
| runn_create_workstreamA | Create a workstream (POST /workstreams). Workstreams are account-level bands of work; create one, then attach it to a project with runn_add_project_workstream. To allocate work to it, pass its id as workstreamId on runn_create_assignment / runn_bulk_actuals. Assignments on the SAME person/role but DIFFERENT workstreams may overlap (Runn sums the load). |
| runn_update_workstreamA | Rename a workstream (PATCH /workstreams/{workstreamId}). |
| runn_delete_workstreamA | Delete a workstream account-wide (DELETE /workstreams/{workstreamId}). Hard delete. |
| runn_add_project_workstreamA | Attach an existing workstream to a project (POST /projects/{projectId}/project-workstreams/{workstreamId}/). No body. Do this once per workstream/project before allocating assignments or actuals on that workstream. |
| runn_remove_project_workstreamA | Detach a workstream from a project (DELETE /projects/{projectId}/project-workstreams/{workstreamId}). Removes the project link only; the workstream itself is not deleted. |
| runn_bulk_actualsA | Create or update up to 100 actuals in one call (POST /actuals/bulk). Each entry overwrites any existing actual for the same project/person/role/date. Either billableMinutes or nonbillableMinutes must be > 0. If any entry is invalid, none are written. |
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/CodecoolGlobal/runn-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server