Clark Server
БесплатноНе проверенProvides a memory layer for personal agents, enabling MCP-compatible agents to store and query profile, factual, episodic, and procedural memory.
Описание
Provides a memory layer for personal agents, enabling MCP-compatible agents to store and query profile, factual, episodic, and procedural memory.
README
Clark is a memory layer for personal agents. It stores profile, factual, episodic, and procedural memory behind one query surface, so tools such as Hermes, Codex, Claude Code, Gemini CLI, Cursor, and MCP-compatible agents can retrieve useful context without stitching several memory systems together.
The repository is being hardened for open-source production use. The current production path is:
- Postgres 16 with
pgvectorfor server deployments. - SQLite plus
sqlite-vecfor local development and single-user experiments. - DeepSeek for LLM extraction by default.
- Gemini embeddings by default.
- FastAPI HTTP API with bearer-token auth.
- MCP server for agent-native integration.
uvfor local development and CI-style commands.
Status
Clark is ready for public open-source development and production-path evaluation. The local CLI, HTTP API, MCP transports, Docker path, Postgres/pgvector backend, and provider contracts are covered by real tests.
Benchmark claims are intentionally conservative: publish comparative numbers only when they come from the checked-in benchmark runners, real provider credentials, and recorded artifacts.
Install
git clone https://github.com/Nomads-AI-Lab/clark.git
cd clark
uv sync --extra test --extra server --extra mcp --extra postgres
For local editable development:
uv pip install -e ".[test,server,mcp,postgres]"
Configuration
Create .env from .env.example and set real credentials:
cp .env.example .env
Required for production server mode:
CLARK_ENV=production
CLARK_AUTH_TOKEN=replace-with-a-long-random-token
CLARK_DATABASE_URL=postgresql://clark:strong-password@postgres:5432/clark
GEMINI_API_KEY=...
DEEPSEEK_API_KEY=...
Important behavior:
- Clark does not silently replace missing providers with fake embeddings or fake LLM output.
- If a required provider key is absent for the code path you run, the operation fails explicitly.
- Server production mode requires
CLARK_AUTH_TOKEN.
CLI
uv run clark doctor
uv run clark migrate
uv run clark stats
uv run clark remember "Alice prefers concise technical answers"
uv run clark query "How should I answer Alice?"
uv run clark session-start
clark migrate applies the Postgres/pgvector schema when CLARK_DATABASE_URL is set. Without CLARK_DATABASE_URL, the legacy SQLite schema initializes on first use.
Docker
cp .env.example .env
# edit .env and set strong real values
docker compose up --build
Then migrate the database:
docker compose exec clark-api clark migrate
Health and API smoke:
curl http://127.0.0.1:8000/healthz
curl -H "Authorization: Bearer $CLARK_AUTH_TOKEN" http://127.0.0.1:8000/v1/stats
HTTP API
uv run clark serve 8000
Endpoints:
GET /healthzGET /readyzGET /v1/statsPOST /v1/memoriesPOST /v1/query
Authenticated request:
curl -X POST http://127.0.0.1:8000/v1/memories \
-H "Authorization: Bearer $CLARK_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{"text":"Alice is building a production memory layer","source":"api"}'
MCP
Run a stdio MCP server:
uv run clark mcp
Run streamable HTTP transport:
uv run clark mcp streamable-http
Available tools:
clark_healthclark_statsclark_queryclark_remember
Resource:
clark://stats
When CLARK_DATABASE_URL is set, MCP uses the Postgres backend. Otherwise it uses the local SQLite backend.
Python API
from clark import HybridMemory
memory = HybridMemory()
memory.remember("Alice works on agent memory infrastructure")
result = memory.query("What does Alice work on?")
print(result["results"])
For production server deployments, prefer the HTTP API or MCP server over importing the legacy SQLite class directly.
Tests
Run the local suite:
uv run pytest
Run real provider contract tests:
GEMINI_API_KEY=... DEEPSEEK_API_KEY=... uv run pytest tests/test_provider_contracts.py
Run real Postgres/pgvector integration tests:
docker run --rm -d --name clark-pgvector-test \
-p 15434:5432 \
-e POSTGRES_DB=clark \
-e POSTGRES_USER=clark \
-e POSTGRES_PASSWORD=clark-local-dev-password \
pgvector/pgvector:pg16
CLARK_DATABASE_URL=postgresql://clark:[email protected]:15434/clark \
GEMINI_API_KEY=... \
uv run pytest tests/test_postgres_backend.py
docker rm -f clark-pgvector-test
Open-Source Documents
- Production readiness roadmap
- Agent integrations
- Benchmark methodology
- Verification status
- Contributing guide
- Security policy
- Code of conduct
- MIT License
Security
Do not expose the HTTP API without CLARK_AUTH_TOKEN. Do not commit .env, database dumps, provider keys, or personal memory exports. Treat memory contents as sensitive user data.
Установка Clark Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/NomadsResearch/clarkFAQ
Clark Server MCP бесплатный?
Да, Clark Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Clark Server?
Нет, Clark Server работает без API-ключей и переменных окружения.
Clark Server — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Clark Server в Claude Desktop, Claude Code или Cursor?
Открой Clark Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Clark Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
