Skip to content
Docs/MCP Integration

Model Context Protocol (MCP)

Give agents real-time access to your project memory through the Model Context Protocol.

What is the vem MCP Server?

The vem-mcp server allows AI clients (like Claude Desktop or Cursor) to call tools that read and write directly to your local.vem/ files and search the cloud index.

Start the server with npx:

npx vem-mcp

Available Tools

get_active_tasks

Retrieve a list of tasks that are not yet complete.

add_task

Create a new task in project memory with optional validation steps.

complete_task

Mark a task as done with evidence, reasoning, and agent signature.

update_task

Update a task's status (start, block, unblock), priority, or other fields.

get_context

Fetch high-level project context and architectural decisions.

search_memory

Perform semantic search over tasks and documentation via the cloud API.

add_decision

Record an architectural decision (ADR) with optional task linking.

get_changelog

Read recent changelog entries to understand what work has been done.

list_agent_sessions

List recent Copilot CLI agent sessions for the current repository. Call this at the start of a session to see what previous sessions worked on — including their summaries, intents, and first user messages.

Task Lifecycle with update_task

Use update_task to manage task status throughout the development lifecycle:

  • in-progress - Start working on a task
  • blocked - Mark as blocked (reasoning required)
  • todo - Unblock a task
// Start working on a task
{
  "id": "TASK-003",
  "status": "in-progress",
  "reasoning": "Beginning implementation"
}

// Block a task
{
  "id": "TASK-003",
  "status": "blocked",
  "reasoning": "Waiting for API endpoint",
  "blocked_by": ["TASK-001"]
}

Task validation + actor fields

When creating tasks via MCP, you can define validation_steps (for example, pnpm build or pnpm test). Agents must confirm those steps when completing the task.

When marking tasks done, always include an actor field so the UI can attribute the completion to the correct agent.

{
  "id": "TASK-123",
  "status": "done",
  "evidence": ["pnpm build"],
  "validation_steps": ["pnpm build"],
  "actor": "Claude Desktop"
}

Recording Decisions with add_decision

Use add_decision to record architectural decisions (ADRs) directly from agents. Link decisions to tasks to track what motivated or implements them.

{
  "title": "Use Zod for validation",
  "context": "Need runtime type checking for API inputs",
  "decision": "Chose Zod over Yup for better TypeScript inference",
  "related_tasks": ["TASK-042", "TASK-043"]
}

Decisions are stored in .vem/decisions/ with timestamp-based filenames for chronological ordering.

Reading Recent Changes with get_changelog

Use get_changelog to understand what work has been done recently without searching through git history.

{
  "limit": 10  // Optional, defaults to 10, max 50
}

Returns recent changelog entries sorted by date descending, helping agents avoid duplicate work and understand project progress.

Claude Desktop Setup

Add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "vem": {
      "command": "npx",
      "args": ["-y", "vem-mcp"],
      "env": {
        "VEM_API_URL": "https://api.vem.dev"
      }
    }
  }
}

Next steps