MCP server

ProjectMind exposes a Streamable HTTP MCP endpoint so agents can read and write your project context directly.

Endpoint

The MCP endpoint is available whenever the app server is running:

MCP endpoint
https://your-imemory-host/api/mcp   (local dev: http://localhost:8084/api/mcp)

Authentication

Authenticate with a bearer token in the Authorization header (or x-api-key). Query-string ?apiKey= is not accepted — keys in URLs leak via logs and Referer headers. Use a project key (imk_...), global key (imgk_...), or bucket key (imbk_...). Multi-project accounts should append ?projectSlug=your-slug or set a default project in Settings → Preferences. Bearer OAuth tokens are also supported for remote clients (Copilot, ChatGPT). Generate keys in Global Settings or Project Settings → MCP client setup (owners only).

Connect a client

ClientConfig locationHow to connect
Cursor~/.cursor/mcp.json or .cursor/mcp.jsonNative HTTP — use the JSON snippet below or npm run setup:cursor. Restart Cursor and use Agent mode.
VS Code + GitHub Copilot.vscode/mcp.json or user mcp.jsonRoot key is servers (not mcpServers). Set type: http, url, and headers. Use Copilot Agent mode.
Claude DesktopSettings → Connectors, or claude_desktop_config.jsonRemote: add a custom connector with your MCP URL. Local dev: bridge with npx mcp-remote and a --header Authorization flag.
Claude Codeclaude mcp add or project .mcp.jsonclaude mcp add --transport http imemory-api <url> --header "Authorization: Bearer imk_..."
ChatGPTSettings → Apps & ConnectorsAdd a custom connector with your public MCP URL. Cloud ChatGPT cannot reach localhost — deploy or tunnel. OAuth is supported.
OpenAI Codex~/.codex/config.tomlcodex mcp add imemory-api --url <url> --bearer-token-env-var IMEMORY_API_KEY, or set [mcp_servers.imemory-api].

Config examples

Recommended: pass the key once at the connection level via header. Tool calls then do not require an apiKey argument.

Cursor / Claude Desktop (HTTP)

mcp.json
{
  "mcpServers": {
    "imemory-api": {
      "url": "https://your-imemory-host/api/mcp",
      "headers": {
        "Authorization": "Bearer imk_your_project_api_key_here"
      }
    }
  }
}

VS Code / Copilot

.vscode/mcp.json
{
  "servers": {
    "imemory-api": {
      "type": "http",
      "url": "https://your-imemory-host/api/mcp",
      "headers": {
        "Authorization": "Bearer imk_your_project_api_key_here"
      }
    }
  }
}

Claude Desktop (local HTTP bridge)

claude_desktop_config.json
{
  "mcpServers": {
    "imemory-api": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://your-imemory-host/api/mcp",
        "--transport",
        "http-only",
        "--header",
        "Authorization: Bearer imk_your_project_api_key_here"
      ]
    }
  }
}

Available tools

All tools are scoped to the project resolved from your key. They return only data from that project.

Tasks
  • listTasks()
  • getCurrentTask()
  • setCurrentTask(taskId)
  • createTask(title, status?, description?, jiraUrl?)
  • updateTask(taskId, title?, status?, description?, jiraUrl?)
  • deleteTask(taskId)
  • deleteAllTasks()
Context
  • getTaskContext(jiraId?, historyLimit?)
  • getProjectContext(historyLimit?)
  • addContextFile(name, kind, taskId?, content?, url?, storagePath?, mime?, size?)
  • updateContextFile(contextFileId, ...)
  • deleteContextFile(contextFileId)
  • appendTaskNote(content, taskId?, title?)
  • searchContext(query, scope?, taskId?, limit?)
  • listGlobalContext()
  • listTaskContext(taskId)
  • logActivity(request, done, taskId?, projectSlug?)
Repositories & teams
  • listRepositories()
  • createRepository(name?, url, provider?, notes?, projectSlug?)
  • updateRepository(repositoryId, name?, url?, ...)
  • addOrUpdateRepository(name?, url?, repositoryId?, ...)
  • deleteRepository(repositoryId)
  • listTeams()
  • createTeam(name, description?)
  • updateTeam(teamId, name, description?)
  • deleteTeam(teamId)
Sync
  • syncJiraTasks(fullSync?)
  • syncConfluencePages(fullSync?)
  • syncRepositoryDocs(fullSync?)
  • getGithubActivity(refresh?)
  • getVercelDeployments(refresh?)
  • getVercelRuntimeErrors(since?, until?, environment?, limit?, includeLogs?)
Monitoring & agents
  • getProjectMonitoring(projectSlug?)
  • configureProjectMonitoring(...)
  • checkProjectHealth(projectSlug?)
  • getProjectStats(projectSlug?)
  • syncProjectProposals(projectSlug?, createTasks?)
  • getProjectProposals(projectSlug?, status?, limit?)
  • createImprovementProposal(title, ...)
  • updateImprovementProposal(proposalId, ...)
  • reportAgentHeartbeat(name, agentKey, kind?, platform?, projectSlug?, meta?)

Next steps

See the API reference for key management and HTTP endpoints, or head to sign up to create your first project.