115 lines
3 KiB
Markdown
115 lines
3 KiB
Markdown
---
|
|
sidebar_position: 5
|
|
---
|
|
|
|
# MCP Server
|
|
|
|
Hindsight includes a built-in [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server that allows AI assistants to store and retrieve memories directly.
|
|
|
|
## Access
|
|
|
|
The MCP server is **enabled by default** and mounted at `/mcp` on the API server:
|
|
|
|
```
|
|
http://localhost:8888/mcp
|
|
```
|
|
|
|
To disable it, set the environment variable:
|
|
|
|
```bash
|
|
export HINDSIGHT_API_MCP_ENABLED=false
|
|
```
|
|
|
|
## Available Tools
|
|
|
|
### hindsight_put
|
|
|
|
Store information to a user's memory bank.
|
|
|
|
| Parameter | Type | Required | Description |
|
|
|-----------|------|----------|-------------|
|
|
| `bank_id` | string | Yes | Unique identifier for the user (e.g., `user_12345`, `alice@example.com`) |
|
|
| `content` | string | Yes | The fact or memory to store |
|
|
| `context` | string | Yes | Category for the memory (e.g., `personal_preferences`, `work_history`) |
|
|
| `explanation` | string | No | Why this memory is being stored |
|
|
|
|
**Example:**
|
|
```json
|
|
{
|
|
"name": "hindsight_put",
|
|
"arguments": {
|
|
"bank_id": "user_12345",
|
|
"content": "User prefers Python over JavaScript for backend development",
|
|
"context": "programming_preferences"
|
|
}
|
|
}
|
|
```
|
|
|
|
**When to use:**
|
|
- User shares personal facts, preferences, or interests
|
|
- Important events or milestones are mentioned
|
|
- Decisions, opinions, or goals are stated
|
|
- Work context or project details are discussed
|
|
|
|
---
|
|
|
|
### hindsight_search
|
|
|
|
Search a user's memory bank to provide personalized responses.
|
|
|
|
| Parameter | Type | Required | Description |
|
|
|-----------|------|----------|-------------|
|
|
| `bank_id` | string | Yes | Unique identifier for the user |
|
|
| `query` | string | Yes | Natural language search query |
|
|
| `max_tokens` | integer | No | Maximum tokens for results (default: 4096) |
|
|
| `explanation` | string | No | Why this search is being performed |
|
|
|
|
**Example:**
|
|
```json
|
|
{
|
|
"name": "hindsight_search",
|
|
"arguments": {
|
|
"bank_id": "user_12345",
|
|
"query": "What are the user's programming language preferences?"
|
|
}
|
|
}
|
|
```
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"results": [
|
|
{
|
|
"id": "fact_abc123",
|
|
"text": "User prefers Python over JavaScript for backend development",
|
|
"type": "world",
|
|
"context": "programming_preferences",
|
|
"event_date": null,
|
|
"document_id": null
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
**When to use:**
|
|
- Start of conversation to recall relevant context
|
|
- Before making recommendations
|
|
- When user asks about something they may have mentioned before
|
|
- To provide continuity across conversations
|
|
|
|
---
|
|
|
|
## Per-User Isolation
|
|
|
|
Both tools require a `bank_id` that uniquely identifies the user. Memories are strictly isolated per bank — one user cannot access another user's memories.
|
|
|
|
**Best practices:**
|
|
- Use consistent identifiers (user ID, email, session ID)
|
|
- Don't share `bank_id` between different users
|
|
- Only call these tools when you can identify the specific user
|
|
|
|
---
|
|
|
|
## Integration with AI Assistants
|
|
|
|
The MCP server can be used with any MCP-compatible AI assistant. For Claude Desktop integration using the CLI, see [MCP Server (CLI)](/sdks/mcp).
|