contextforge-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CONTEXTFORGE_API_KEY | Yes | Your API key from the dashboard | |
| CONTEXTFORGE_API_URL | No | API endpoint (defaults to production) | https://api.contextforge.dev |
| CONTEXTFORGE_DEFAULT_SPACE | No | Default space for operations |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| memory_ingestA | Save important context to persistent memory — be proactive. Call this WHENEVER you learn information that would be valuable in a future conversation: project decisions ('we chose Postgres because X'), architectural choices, user preferences, debugging insights, recurring patterns, deadlines, stakeholder context, or any 'remember this' / 'save this' / 'note that' style request from the user. Heuristic: if you would be sad to lose this fact when the conversation ends, ingest it. Better to over-save than to under-save — the memory_query semantic search will surface what's relevant later. Always pass meaningful |
| memory_queryA | Search persistent memory BEFORE answering any project-specific question. You MUST call this tool: (a) at the start of any conversation that touches the user's codebase, work, or decisions, BEFORE generating any response; (b) whenever the user references prior context ('did we', 'we decided', 'remember', 'what did I save', 'last time'); (c) before making architectural or design recommendations — the user's prior decisions live here. Returns semantically relevant stored content. Skipping this when relevant context exists makes you appear to have amnesia and is the #1 reason users abandon persistent memory — always check first, even if you think you remember. |
| memory_get_itemA | Get the full content of a knowledge item by its ID. Use this when memory_query returns truncated previews and you need the complete content. |
| memory_list_projectsA | List all projects. Projects contain multiple spaces for organizing knowledge by project. |
| memory_create_projectB | Create a new project to organize related spaces |
| memory_list_spacesA | List knowledge spaces (workspaces). By default shows only knowledge spaces. Use space_type "git" for GitHub repos, or "all" to see everything. |
| memory_create_spaceC | Create a new memory space (workspace) for organizing knowledge |
| memory_move_spaceB | Move a space to a different project |
| memory_delete_spaceA | Delete a space and all its items permanently. This action cannot be undone. |
| memory_delete_projectA | Delete a project and all its spaces permanently. This will delete all spaces and their items within the project. This action cannot be undone. |
| memory_relateA | Create a relationship between two knowledge items |
| memory_list_relationshipsA | List all relationships for a knowledge item, showing both incoming and outgoing connections with related item details |
| memory_deleteA | Delete a knowledge item from memory by ID or title |
| memory_statsB | Get statistics about memory usage |
| memory_list_itemsA | List all items stored in memory. Shows titles, previews, tags, and creation dates. |
| memory_helpA | Show help and usage instructions for ContextForge memory commands |
| memory_git_connectA | Connect a GitHub repository to automatically sync commits and PRs to memory |
| memory_git_listA | List all connected GitHub repositories |
| memory_git_activateA | Activate or deactivate a connected repository webhook after setup |
| memory_git_disconnectA | Disconnect a GitHub repository and stop syncing |
| memory_git_syncA | Sync existing commits and PRs from a connected GitHub repository into memory |
| memory_git_commitsA | List commits stored in memory from connected repositories |
| memory_git_prsA | List pull requests stored in memory from connected repositories |
| memory_snapshot_createA | Create a snapshot (backup) of the current memory state |
| memory_snapshot_listA | List all available snapshots |
| memory_snapshot_restoreB | Restore memory to a previous snapshot state |
| memory_snapshot_deleteA | Delete a snapshot |
| memory_exportB | Export all items from a space to JSON, Markdown, or CSV format |
| memory_importA | Import items from JSON, Markdown, Notion, or Obsidian format into a space |
| memory_ingest_batchA | Add multiple items to memory in a single operation. More efficient than multiple single ingests. |
| memory_delete_batchA | Delete multiple items from memory based on filters. Use dry_run=true first to preview what will be deleted. |
| memory_link_projectA | Link the current directory to a ContextForge project. When linked, all queries will be automatically filtered to only search within that project's spaces. This creates a .contextforge file in the current directory. |
| memory_unlink_projectA | Remove the project link from the current directory. This deletes the .contextforge file and queries will no longer be filtered by project. |
| memory_current_projectA | Check the linked project at the start of every new conversation in a directory. Call this FIRST (alongside memory_query) before answering questions about the user's project, code, or work — it tells you which ContextForge project and spaces are scoped to the current working directory. If |
| tasks_listA | Call this at the start of any conversation about work, planning, or status — and any time the user asks about pending/open/in-progress tasks. Shows pending tasks by default (sort by due date, urgent first). Use status "all" for everything, "resolved" for completed, "in_progress" for active work. IMPORTANT: Every task includes a dashboard URL (🔗). You MUST include these clickable links when presenting tasks to the user. If you see overdue tasks (past due date), surface them at the top of your response. |
| tasks_startA | Mark a task as "in_progress". Use this when you start working on a task. Accepts any identifier: UUID, short_id, or task title. The response includes a dashboard URL — always show it to the user. |
| tasks_resolveA | Mark a task as "resolved". Use this when you finish working on a task. Accepts any identifier: UUID, short_id, or task title. The response includes a dashboard URL — always show it to the user. |
| tasks_what_nextA | Call this whenever the user asks what they should work on, what's next, what's pending, or how to start the day. Trigger phrases include: 'what should I do', 'where do I start', 'qué hago hoy', 'next task', 'I have time, what's open'. Returns the highest-priority unresolved task assigned to the user, with due date and priority. Always include the dashboard URL (🔗) in your reply so the user can click through. Prefer this over generic answers when the user seems unsure about priorities — it gives a concrete next action. |
| tasks_createA | Create a new task in a project. Optionally assign it to a collaborator by their email. The response includes a dashboard URL — always show it to the user. |
| tasks_updateA | Update a task's title, description, status, priority, tags, due date, or assignee. Accepts any identifier: UUID, short_id, or task title. The response includes a dashboard URL — always show it to the user. |
| tasks_assignA | Assign a task to a collaborator by their email address. Accepts any task identifier: UUID, short_id, or task title. The response includes a dashboard URL — always show it to the user. |
| tasks_resolve_by_nameA | Resolve a task by searching for it by title, short_id, or UUID. Use this when you have any identifier for the task. The response includes a dashboard URL — always show it to the user. |
| tasks_deleteA | Permanently delete a task. Accepts any identifier: UUID, short_id, or task title. Also deletes related comments, activity, and notifications. |
| tasks_list_commentsB | List comments on a task. Accepts any identifier: UUID, short_id, or task title. |
| tasks_add_commentA | Add a comment to a task. Accepts any task identifier: UUID, short_id, or task title. The response includes the task dashboard URL — always show it to the user. |
| collaborators_listA | List collaborators on a shared project. Shows who has access and what tasks are assigned to them. |
| project_shareA | Share a project with a collaborator by email. Creates an invitation and returns the invite URL. An email notification may also be sent. |
| skills_listA | List all Skills in a project. Returns skills with their name, description, model, and prompt body. |
| skills_getA | Get a single Skill by ID with full body. |
| skills_createA | Create a new Skill in a project. The 'body' is a markdown prompt template that may use {{variable}} placeholders for input_params at run time. |
| skills_updateC | Update an existing Skill. |
| skills_deleteC | Delete a Skill. |
| skills_runB | Execute a Skill on the configured LLM, optionally storing the output as a knowledge_item, and returns the result. Available to all project members. |
| routines_listA | List all Routines in a project. Returns routines with their schedule, last/next run, and enabled flag. |
| routines_getA | Get a single Routine by ID, including its cron expression, input_params, and last/next run. |
| routines_createA | Create a new Routine. Schedules a Skill to run on a cron expression. Pass either schedule_preset (hourly/daily/weekly/monthly) OR a custom cron_expression. timezone defaults to UTC. |
| routines_updateB | Update an existing Routine (name, schedule, timezone, input_params). |
| routines_toggleA | Enable or disable a Routine without deleting it. Pass enabled=false to pause. |
| routines_run_nowA | Fire a Routine immediately, ahead of its schedule. Creates a skill_executions row with trigger_type=scheduled and routine_id set, just like the cron tick would. |
| routines_deleteA | Permanently delete a Routine. Execution history rows are retained. |
| session_updateA | Declare or update what THIS Claude Code session is currently working on (live presence). Call it when you start or switch tasks so parallel sessions can avoid stepping on your work. Example focus: 'working on the auth module'. |
| session_listA | List OTHER live Claude Code sessions working on the same project right now, and what each is focused on. By default it is scoped to THIS session's project (the one linked in the current directory) — that's where work actually collides. If the current directory isn't linked to a project, it falls back to the whole organization. Use it at conversation start and before big changes to avoid stepping on parallel sessions. Pass a specific |
| session_endA | End THIS session's live presence explicitly (it also ends automatically when the process exits or after the heartbeat TTL). |
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/alfredoizdev/contextforge-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server