TiMEM MCP Server - Model Context Protocol server for TiMEM Engine
Project description
TiMEM MCP Server
Language: English | 简体中文
Model Context Protocol server for TiMEM Engine, providing memory management tools for AI applications.
Need help configuring MCP? Copy the AI setup prompt into any AI assistant and follow the steps.
Get your API key
Obtain an API key from TiMEM Console.
Set environment variables on your system (recommended — do not hard-code keys in config files):
export TiMEM_API_KEY="your-api-key"
export TiMEM_USER_ID="your-user-id"
Quick Start (Cloud HTTP — recommended)
No local install. Set environment variables, then add this to your MCP client config (~/.cursor/mcp.json):
{
"mcpServers": {
"TiMEM-MCP": {
"url": "https://api.timem.cloud/mcp",
"headers": {
"X-API-Key": "${env:TiMEM_API_KEY}",
"X-TiMEM-User-Id": "${env:TiMEM_USER_ID}"
}
}
}
}
Restart your MCP client. Expect 5 tools: create_memory, classify_memory_scene, search_memories, delete_memory, ready.
Guide: cursor_en.md · 中文版
Quick Start (Local stdio — optional)
For offline development, install from GitHub; PyPI timem-mcp==0.2.1 is also available.
1. Install timem-mcp
Option A — clone + pip:
git clone https://github.com/TiMEM-AI/timem-mcp.git
cd timem-mcp
git checkout v0.2.0
pip install -e .
Option B — uvx from GitHub (requires uv; no clone needed):
uvx --from git+https://github.com/TiMEM-AI/timem-mcp@v0.2.0 timem-mcp
Full guide: from_github_en.md · 中文版
2. Configure your MCP client
| Client | Guide |
|---|---|
| Cursor | cursor_en.md · 中文 |
| Claude Desktop | claude_desktop.md |
| All clients (paths) | mcp_clients_en.md · 中文 |
Copy an example config:
- clone + pip:
.cursor/mcp.json.example - uvx from git:
.cursor/mcp.json.example.from-git
On Windows with conda, set command to the full path of your python.exe.
3. Verify
Fully quit and restart your client. Confirm 5 tools: create_memory, classify_memory_scene, search_memories, delete_memory, ready. Run ready to check API connectivity.
Cursor deeplink (optional)
python scripts/generate_cursor_deeplink.py local # clone + pip
python scripts/generate_cursor_deeplink.py from-source # uvx from GitHub
Optional: Cursor Rules
Add .cursor/rules/timem-memory.mdc to your project so Agent calls memory tools proactively.
Tool reference: tools_en.md · 中文
Quick Start: PyPI (optional)
When published to PyPI:
{
"mcpServers": {
"TiMEM-MCP-0.2.0": {
"type": "stdio",
"command": "uvx",
"args": ["timem-mcp"],
"env": {
"TiMEM_API_KEY": "${env:TiMEM_API_KEY}",
"TiMEM_USER_ID": "${env:TiMEM_USER_ID}",
"TiMEM_API_HOST": "https://api.timem.cloud"
}
}
}
}
Deeplink: python scripts/generate_cursor_deeplink.py pypi
Configuration
| Variable | Required | Default | Description |
|---|---|---|---|
TiMEM_API_KEY |
Yes | - | TiMEM Engine API key |
TiMEM_USER_ID |
Recommended | - | Default user ID (overridable per tool call) |
TiMEM_API_HOST |
No | https://api.timem.cloud |
API endpoint |
TiMEM_MEMORY_TASK_POLL_INTERVAL_SECONDS |
No | 1.0 |
Poll interval for async memory generation |
TiMEM_MEMORY_TASK_MAX_WAIT_SECONDS |
No | 60.0 |
Max wait for async memory generation |
TIMEM_AUTO_SCENE |
No | unset | Set to 1 to enable automatic scene classification on create_memory |
Both TiMEM_* and TIMEM_* prefixes are supported (TiMEM_* takes priority).
Available tools
create_memory
Create memories from conversation history. Backend accepts HTTP 202 and generates in the background; this server polls until complete.
When TIMEM_AUTO_SCENE=1 is set and domain is omitted, the conversation is automatically classified into one of general, coding, or writing via MCP sampling.
Parameters: messages, session_id, optional user_id, expert_id, domain (general/coding/writing), wait_for_completion
API: POST /api/v1/memory/ → GET /api/v1/memory/memory-generation/tasks/{task_id}
classify_memory_scene
Explicitly classify a conversation into a memory scene (general, coding, or writing). Useful when you want to decide the scene before calling create_memory.
Parameters: messages
search_memories
Enhanced semantic memory search. The optional domain parameter is reserved for future backend filtering and currently serves only as a search-strategy hint.
Parameters: query_text, layer, user_id, limit, enable_memories_rethink, optional domain
API: POST /api/v1/memory/search
delete_memory
Soft-delete a single memory by ID. No hard_delete or bulk delete.
When to use: User explicitly asks to forget/remove a memory; confirm memory_id from search or create first.
Parameters: memory_id
API: DELETE /api/v1/memory/{memory_id}
ready
Health check for MCP config and TiMEM API connectivity.
Other MCP clients
Claude Desktop, Windsurf, Cline, and other stdio MCP clients use the same JSON shape. See mcp_clients_en.md for config paths and AI setup prompt for guided setup.
Development
pip install -e ".[dev]"
pytest tests/ -m "not live" -v
pytest tests/ -m live -v # requires backend + credentials
pytest tests/test_mcp_stdio.py -v # confirms 5 MCP tools
MCP Inspector (manual testing):
npx @modelcontextprotocol/inspector python -m timem_mcp
See docs/tools_en.md for per-field Inspector examples.
Contributing
See CONTRIBUTING.md. Security: SECURITY.md. Changes: CHANGELOG.md.
License
MIT License — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file timem_mcp-0.3.1.tar.gz.
File metadata
- Download URL: timem_mcp-0.3.1.tar.gz
- Upload date:
- Size: 148.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3cfe1bc3c90f2a3ed297766ac9ac20e40fd1a62cfdbef907083629ad6989eec1
|
|
| MD5 |
415d3108aff83d827880d613e311c079
|
|
| BLAKE2b-256 |
ca26582b3f539d2103780eeda25029d4e498717d88fe27ffed5f1c982fede16b
|
Provenance
The following attestation bundles were made for timem_mcp-0.3.1.tar.gz:
Publisher:
publish.yml on TiMEM-AI/timem-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timem_mcp-0.3.1.tar.gz -
Subject digest:
3cfe1bc3c90f2a3ed297766ac9ac20e40fd1a62cfdbef907083629ad6989eec1 - Sigstore transparency entry: 1938499092
- Sigstore integration time:
-
Permalink:
TiMEM-AI/timem-mcp@05f70a7342fbfd75c0df1dac9058d2b7f0ed5c78 -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/TiMEM-AI
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@05f70a7342fbfd75c0df1dac9058d2b7f0ed5c78 -
Trigger Event:
push
-
Statement type:
File details
Details for the file timem_mcp-0.3.1-py3-none-any.whl.
File metadata
- Download URL: timem_mcp-0.3.1-py3-none-any.whl
- Upload date:
- Size: 26.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d33c13a5f92d85af179b891508de19390a724acb1a60ea77f7869d66857bbfcf
|
|
| MD5 |
610a5a760377f8745c542b7aa19f1c71
|
|
| BLAKE2b-256 |
1a676660992209b5b0d8f61a9133460b11a827b8d320a8922eb68ed66055c032
|
Provenance
The following attestation bundles were made for timem_mcp-0.3.1-py3-none-any.whl:
Publisher:
publish.yml on TiMEM-AI/timem-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timem_mcp-0.3.1-py3-none-any.whl -
Subject digest:
d33c13a5f92d85af179b891508de19390a724acb1a60ea77f7869d66857bbfcf - Sigstore transparency entry: 1938499275
- Sigstore integration time:
-
Permalink:
TiMEM-AI/timem-mcp@05f70a7342fbfd75c0df1dac9058d2b7f0ed5c78 -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/TiMEM-AI
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@05f70a7342fbfd75c0df1dac9058d2b7f0ed5c78 -
Trigger Event:
push
-
Statement type: