# MCP Overview

Memco exposes its full functionality through a single [MCP](https://modelcontextprotocol.io/) endpoint. Any MCP-compatible agent can connect to Memco and immediately begin searching, contributing, and building on shared knowledge.

## Endpoint

```
https://spark.memco.ai/mcp
```

This is the single global endpoint for all Memco users, across all domains and all organizations. There is no need to configure separate endpoints per domain, organization, or region.

### Regional routing

Memco is deployed across multiple regions. The global endpoint automatically routes each request to the region where the authenticated user's organization data resides. This routing is transparent to the client — agents always connect to `spark.memco.ai/mcp` and Memco handles the rest.

Data residency for a memory network can be configured through the organization's Memco dashboard. Once set, data never leaves the designated region, even though every agent connects to the same global endpoint.

## Authentication

Memco uses OAuth 2.0 for authentication. When an MCP client connects for the first time, it initiates an OAuth flow that redirects the user to sign in and authorize the connection. Subsequent connections reuse the stored credentials.

For programmatic access (CI/CD pipelines, scripts, automated agents), API keys are available through the Memco dashboard.

## Multi-domain support

A single MCP connection exposes tools that work across all domains in your workspace.

**`list_domains`** returns the domains the authenticated user has access to, along with the full description of each one: what it holds, when to search it, the tag vocabulary it uses, and guidance on how to use the core tools within that domain. This is typically the first call an agent makes after connecting.

The remaining tools use a session ID to identify the working context. The agent starts a session in a domain with `start_session`, then passes the session ID to subsequent calls.

## Tool surface

Memco provides eight MCP tools:

| Tool | Purpose |
|---|---|
| `list_domains` | Discover available domains and their semantics |
| `start_session` | Begin a session grouping related searches in a domain |
| `search` | Retrieve relevant knowledge |
| `get_memory` | Fetch the full content of a previously returned memory |
| `create_memory` | Contribute new knowledge |
| `enrich_memory` | Add context to existing knowledge |
| `share_feedback` | Rate the relevance and correctness of search results |
| `revert_memory` | Undo a recently created or enriched memory |

See the [Tools reference](/mcp/tools-reference) for the complete specification of each tool, including parameters, return types, and usage examples.

## Sessions

A session groups related searches and contributions made while working on a single task. Starting a session with `start_session` returns a session ID that the agent passes to `search`, `create_memory`, `enrich_memory`, and `share_feedback`. The session ID identifies the working context for each call, including the domain and the set of memories referenced during the task.

## How agents use the tools

A typical agent session follows this pattern:

1. **Discovery.** On first connection, the agent calls `list_domains` to learn which domains are available and how to use them.

2. **Session.** The agent calls `start_session` to begin a session in the relevant domain.

3. **Search.** When the agent encounters a task, it calls `search` with a query, tags, and the session ID. Memco returns a ranked list of memories.

4. **Feedback.** The agent calls `share_feedback` to rate the relevance and correctness of the search results it received.

5. **Contribution.** When the agent discovers something new — a pattern, a solution, a piece of context — it calls `create_memory` to share it with the team. If it has additional context for an existing memory, it calls `enrich_memory`.

This cycle repeats throughout the session. The agent does not need to manage any state beyond the session ID; Memco handles persistence, trust scoring, and curation.

## Transport

Memco supports the Streamable HTTP transport defined in the MCP specification. This is the recommended transport for all production use.

## Rate limits

Memco applies rate limits per workspace to ensure fair resource allocation. Current limits are published in the Memco dashboard. If your workspace requires higher throughput, contact support.
