project-manager
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PROJECT_MANAGER_API_BASE | Yes | Base URL for the project manager API (e.g., http://127.0.0.1:8000) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pm_healthB | GET /health — API liveness. |
| pm_list_projectsB | GET /projects — list projects (optional include_archived). |
| pm_get_projectD | GET /projects/{project_id}. |
| pm_create_projectC | POST /projects — body matches ProjectCreate (name, description_md, owner, optional slug, color_key, sort_order, settings_json, owner_user_id). |
| pm_update_projectC | PATCH /projects/{project_id} — partial ProjectUpdate fields. |
| pm_delete_projectD | DELETE /projects/{project_id}. |
| pm_list_project_filesC | GET /projects/{project_id}/files. |
| pm_upload_project_fileD | POST /projects/{project_id}/files — multipart upload; file bytes as standard base64. |
| pm_download_project_fileA | GET /projects/{project_id}/files/{file_id}/download — returns JSON with content_base64, content_type, size_bytes. |
| pm_update_project_fileB | PATCH /projects/{project_id}/files/{file_id} — partial ProjectFileUpdate (name, description_md, kind). |
| pm_delete_project_fileD | DELETE /projects/{project_id}/files/{file_id}. |
| pm_create_taskC | POST /tasks — TaskCreate (project_id, title, short_name, plus optional fields). |
| pm_list_tasksC | GET /tasks — filters optional. task_status: todo|in_progress|blocked|done|cancelled; priority: low|medium|high|urgent. |
| pm_get_taskC | GET /tasks/{task_id}. |
| pm_update_taskC | PATCH /tasks/{task_id} — partial TaskUpdate. |
| pm_delete_taskC | DELETE /tasks/{task_id}. |
| pm_task_attach_tagC | POST /tasks/{task_id}/tags — body {tag_id: ...}; tag_id also accepted as top-level arg for convenience. |
| pm_task_detach_tagC | DELETE /tasks/{task_id}/tags/{tag_id}. |
| pm_create_commentD | POST /comments — TaskCommentCreate. |
| pm_list_commentsC | GET /comments?task_id=... |
| pm_update_commentD | PATCH /comments/{comment_id}. |
| pm_delete_commentC | DELETE /comments/{comment_id}. |
| pm_create_userB | POST /users — admin only. UserCreate: display_name; optional email, phone, avatar_url, presence, role (admin|member), user_kind (internal|client), organization_id, team_id. |
| pm_list_usersA | GET /users — optional filters. user_kind: internal|client; label_ids: comma-separated UUIDs (OR); do not combine label_id and label_ids. |
| pm_export_users_joinedA | GET /users/export/joined — plain text; field: display_name|email|phone; separator: comma|semicolon; same filters as pm_list_users. |
| pm_export_users_csvC | GET /users/export.csv — CSV export; fields is comma-separated column names; same filters as pm_list_users. |
| pm_get_userC | GET /users/{user_id}. |
| pm_update_userA | PATCH /users/{user_id} — partial UserUpdate; requires X-User-Id (self or admin). Fields: display_name, email, phone, avatar_url, presence, role, user_kind, organization_id, team_id. |
| pm_user_attach_labelC | POST /users/{user_id}/labels — admin only; attach a contact label to a user. |
| pm_user_detach_labelC | DELETE /users/{user_id}/labels/{label_id} — admin only. |
| pm_delete_userC | DELETE /users/{user_id} — admin only. |
| pm_create_user_labelC | POST /user-labels — UserLabelCreate {name}. |
| pm_list_user_labelsA | GET /user-labels — list global contact labels (not task tags). |
| pm_get_user_labelD | GET /user-labels/{label_id}. |
| pm_delete_user_labelD | DELETE /user-labels/{label_id}. |
| pm_create_organizationD | POST /organizations — OrganizationCreate {name}. |
| pm_list_organizationsD | GET /organizations. |
| pm_get_organizationD | GET /organizations/{organization_id}. |
| pm_create_teamB | POST /teams — TeamCreate {name, optional organization_id}. |
| pm_list_teamsB | GET /teams — optional organization_id filter. |
| pm_get_teamC | GET /teams/{team_id}. |
| pm_create_tagB | POST /tags — TagCreate (name, optional project_id). |
| pm_list_tagsC | GET /tags — optional project_id or global_only. |
| pm_get_tagD | GET /tags/{tag_id}. |
| pm_update_tagD | PATCH /tags/{tag_id}. |
| pm_delete_tagD | DELETE /tags/{tag_id}. |
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
- 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/samrullo/project_manager_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server