mcpField
M
mcp-context-server

mcp-context-server

本地服务
github.com/alex-feel记忆与知识9今天更新

关于 mcp-context-server

mcp-context-server 为 LLM Agent 提供持久化多模态上下文存储,支持按线程共享上下文、访问控制及多种搜索和读取方式,并可使用 SQLite 或 PostgreSQL。

主要功能

  1. 01存储文本和图像上下文
  2. 02按线程共享上下文
  3. 03逐条记录所有权与授权
  4. 04全文、语义及混合搜索
  5. 05元数据、日期和标签筛选
  6. 06局部读取与文档同步

适用场景

  1. 01在同一任务的多个 Agent 间共享上下文
  2. 02按含义或文本搜索已存储上下文
  3. 03管理公开和私有记录的访问权限
  4. 04将文档目录同步为知识库

MCP 相关

向 MCP 客户端提供上下文管理、搜索、导航、同步、共享和批量操作工具,兼容 MCP 客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"alex-feel-mcp-context-server": {
"command": "uvx",
"args": [
"mcp-context-server"
],
"env": {
"LOG_LEVEL": "<LOG_LEVEL>",
"STORAGE_BACKEND": "<STORAGE_BACKEND>",
"MAX_IMAGE_SIZE_MB": "<MAX_IMAGE_SIZE_MB>",
"MAX_TOTAL_SIZE_MB": "<MAX_TOTAL_SIZE_MB>",
"DB_PATH": "<DB_PATH>",
"POOL_MAX_READERS": "<POOL_MAX_READERS>",
"POOL_MAX_WRITERS": "<POOL_MAX_WRITERS>",
"POOL_CONNECTION_TIMEOUT_S": "<POOL_CONNECTION_TIMEOUT_S>",
"POOL_IDLE_TIMEOUT_S": "<POOL_IDLE_TIMEOUT_S>",
"POOL_HEALTH_CHECK_INTERVAL_S": "<POOL_HEALTH_CHECK_INTERVAL_S>",
"RETRY_MAX_RETRIES": "<RETRY_MAX_RETRIES>",
"RETRY_BASE_DELAY_S": "<RETRY_BASE_DELAY_S>",
"RETRY_MAX_DELAY_S": "<RETRY_MAX_DELAY_S>",
"RETRY_JITTER": "<RETRY_JITTER>",
"RETRY_BACKOFF_FACTOR": "<RETRY_BACKOFF_FACTOR>",
"SQLITE_FOREIGN_KEYS": "<SQLITE_FOREIGN_KEYS>",
"SQLITE_JOURNAL_MODE": "<SQLITE_JOURNAL_MODE>",
"SQLITE_SYNCHRONOUS": "<SQLITE_SYNCHRONOUS>",
"SQLITE_TEMP_STORE": "<SQLITE_TEMP_STORE>",
"SQLITE_MMAP_SIZE": "<SQLITE_MMAP_SIZE>",
"SQLITE_CACHE_SIZE": "<SQLITE_CACHE_SIZE>",
"SQLITE_PAGE_SIZE": "<SQLITE_PAGE_SIZE>",
"SQLITE_WAL_AUTOCHECKPOINT": "<SQLITE_WAL_AUTOCHECKPOINT>",
"SQLITE_BUSY_TIMEOUT_MS": "<SQLITE_BUSY_TIMEOUT_MS>",
"SQLITE_WAL_CHECKPOINT": "<SQLITE_WAL_CHECKPOINT>",
"SHUTDOWN_TIMEOUT_S": "<SHUTDOWN_TIMEOUT_S>",
"SHUTDOWN_TIMEOUT_TEST_S": "<SHUTDOWN_TIMEOUT_TEST_S>",
"QUEUE_TIMEOUT_S": "<QUEUE_TIMEOUT_S>",
"QUEUE_TIMEOUT_TEST_S": "<QUEUE_TIMEOUT_TEST_S>",
"CIRCUIT_BREAKER_FAILURE_THRESHOLD": "<CIRCUIT_BREAKER_FAILURE_THRESHOLD>",
"CIRCUIT_BREAKER_RECOVERY_TIMEOUT_S": "<CIRCUIT_BREAKER_RECOVERY_TIMEOUT_S>",
"CIRCUIT_BREAKER_HALF_OPEN_MAX_CALLS": "<CIRCUIT_BREAKER_HALF_OPEN_MAX_CALLS>",
"POSTGRESQL_CONNECTION_STRING": "<POSTGRESQL_CONNECTION_STRING>",
"POSTGRESQL_HOST": "<POSTGRESQL_HOST>",
"POSTGRESQL_PORT": "<POSTGRESQL_PORT>",
"POSTGRESQL_USER": "<POSTGRESQL_USER>",
"POSTGRESQL_PASSWORD": "<POSTGRESQL_PASSWORD>",
"POSTGRESQL_DATABASE": "<POSTGRESQL_DATABASE>",
"POSTGRESQL_POOL_MIN": "<POSTGRESQL_POOL_MIN>",
"POSTGRESQL_POOL_MAX": "<POSTGRESQL_POOL_MAX>",
"POSTGRESQL_POOL_TIMEOUT_S": "<POSTGRESQL_POOL_TIMEOUT_S>",
"POSTGRESQL_COMMAND_TIMEOUT_S": "<POSTGRESQL_COMMAND_TIMEOUT_S>",
"POSTGRESQL_MIGRATION_TIMEOUT_S": "<POSTGRESQL_MIGRATION_TIMEOUT_S>",
"POSTGRESQL_MAX_INACTIVE_LIFETIME_S": "<POSTGRESQL_MAX_INACTIVE_LIFETIME_S>",
"POSTGRESQL_MAX_QUERIES": "<POSTGRESQL_MAX_QUERIES>",
"POSTGRESQL_TCP_KEEPALIVES_IDLE_S": "<POSTGRESQL_TCP_KEEPALIVES_IDLE_S>",
"POSTGRESQL_TCP_KEEPALIVES_INTERVAL_S": "<POSTGRESQL_TCP_KEEPALIVES_INTERVAL_S>",
"POSTGRESQL_TCP_KEEPALIVES_COUNT": "<POSTGRESQL_TCP_KEEPALIVES_COUNT>",
"POSTGRESQL_STATEMENT_CACHE_SIZE": "<POSTGRESQL_STATEMENT_CACHE_SIZE>",
"POSTGRESQL_MAX_CACHED_STATEMENT_LIFETIME_S": "<POSTGRESQL_MAX_CACHED_STATEMENT_LIFETIME_S>",
"POSTGRESQL_MAX_CACHEABLE_STATEMENT_SIZE": "<POSTGRESQL_MAX_CACHEABLE_STATEMENT_SIZE>",
"POSTGRESQL_SSL_MODE": "<POSTGRESQL_SSL_MODE>",
"POSTGRESQL_SCHEMA": "<POSTGRESQL_SCHEMA>",
"ENABLE_SEMANTIC_SEARCH": "<ENABLE_SEMANTIC_SEARCH>",
"ENABLE_EMBEDDING_GENERATION": "<ENABLE_EMBEDDING_GENERATION>",
"OLLAMA_HOST": "<OLLAMA_HOST>",
"OLLAMA_AUTO_PULL": "<OLLAMA_AUTO_PULL>",
"OLLAMA_PULL_TIMEOUT_S": "<OLLAMA_PULL_TIMEOUT_S>",
"EMBEDDING_OLLAMA_TRUNCATE": "<EMBEDDING_OLLAMA_TRUNCATE>",
"EMBEDDING_OLLAMA_NUM_CTX": "<EMBEDDING_OLLAMA_NUM_CTX>",
"EMBEDDING_MODEL": "<EMBEDDING_MODEL>",
"EMBEDDING_DIM": "<EMBEDDING_DIM>",
"EMBEDDING_TIMEOUT_S": "<EMBEDDING_TIMEOUT_S>",
"EMBEDDING_RETRY_MAX_ATTEMPTS": "<EMBEDDING_RETRY_MAX_ATTEMPTS>",
"EMBEDDING_RETRY_BASE_DELAY_S": "<EMBEDDING_RETRY_BASE_DELAY_S>",
"EMBEDDING_MAX_CONCURRENT": "<EMBEDDING_MAX_CONCURRENT>",
"ENABLE_SUMMARY_GENERATION": "<ENABLE_SUMMARY_GENERATION>",
"SUMMARY_PROVIDER": "<SUMMARY_PROVIDER>",
"SUMMARY_MODEL": "<SUMMARY_MODEL>",
"SUMMARY_MAX_TOKENS": "<SUMMARY_MAX_TOKENS>",
"SUMMARY_TIMEOUT_S": "<SUMMARY_TIMEOUT_S>",
"SUMMARY_RETRY_MAX_ATTEMPTS": "<SUMMARY_RETRY_MAX_ATTEMPTS>",
"SUMMARY_RETRY_BASE_DELAY_S": "<SUMMARY_RETRY_BASE_DELAY_S>",
"SUMMARY_MAX_CONCURRENT": "<SUMMARY_MAX_CONCURRENT>",
"SUMMARY_PROMPT": "<SUMMARY_PROMPT>",
"SUMMARY_MIN_CONTENT_LENGTH": "<SUMMARY_MIN_CONTENT_LENGTH>",
"SUMMARY_OLLAMA_NUM_CTX": "<SUMMARY_OLLAMA_NUM_CTX>",
"SUMMARY_OLLAMA_TRUNCATE": "<SUMMARY_OLLAMA_TRUNCATE>",
"SUMMARY_OPENAI_REASONING_EFFORT": "<SUMMARY_OPENAI_REASONING_EFFORT>",
"SUMMARY_ANTHROPIC_EFFORT": "<SUMMARY_ANTHROPIC_EFFORT>",
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>",
"ENABLE_FTS": "<ENABLE_FTS>",
"FTS_LANGUAGE": "<FTS_LANGUAGE>",
"FTS_RERANK_WINDOW_SIZE": "<FTS_RERANK_WINDOW_SIZE>",
"FTS_RERANK_GAP_MERGE": "<FTS_RERANK_GAP_MERGE>",
"ENABLE_HYBRID_SEARCH": "<ENABLE_HYBRID_SEARCH>",
"HYBRID_RRF_K": "<HYBRID_RRF_K>",
"HYBRID_RRF_OVERFETCH": "<HYBRID_RRF_OVERFETCH>",
"HYBRID_FTS_OR_THRESHOLD": "<HYBRID_FTS_OR_THRESHOLD>",
"SEARCH_DEFAULT_SORT_BY": "<SEARCH_DEFAULT_SORT_BY>",
"SEARCH_TRUNCATION_LENGTH": "<SEARCH_TRUNCATION_LENGTH>",
"ENABLE_CHUNKING": "<ENABLE_CHUNKING>",
"CHUNK_SIZE": "<CHUNK_SIZE>",
"CHUNK_OVERLAP": "<CHUNK_OVERLAP>",
"CHUNK_AGGREGATION": "<CHUNK_AGGREGATION>",
"CHUNK_DEDUP_OVERFETCH": "<CHUNK_DEDUP_OVERFETCH>",
"ENABLE_RERANKING": "<ENABLE_RERANKING>",
"RERANKING_PROVIDER": "<RERANKING_PROVIDER>",
"RERANKING_MODEL": "<RERANKING_MODEL>",
"RERANKING_MAX_LENGTH": "<RERANKING_MAX_LENGTH>",
"RERANKING_OVERFETCH": "<RERANKING_OVERFETCH>",
"RERANKING_CACHE_DIR": "<RERANKING_CACHE_DIR>",
"RERANKING_CHARS_PER_TOKEN": "<RERANKING_CHARS_PER_TOKEN>",
"RERANKING_INTRA_OP_THREADS": "<RERANKING_INTRA_OP_THREADS>",
"RERANKING_CPU_MEM_ARENA": "<RERANKING_CPU_MEM_ARENA>",
"RERANKING_BATCH_SIZE": "<RERANKING_BATCH_SIZE>",
"EMBEDDING_PROVIDER": "<EMBEDDING_PROVIDER>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"OPENAI_API_BASE": "<OPENAI_API_BASE>",
"OPENAI_ORGANIZATION": "<OPENAI_ORGANIZATION>",
"AZURE_OPENAI_API_KEY": "<AZURE_OPENAI_API_KEY>",
"AZURE_OPENAI_ENDPOINT": "<AZURE_OPENAI_ENDPOINT>",
"AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME": "<AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME>",
"AZURE_OPENAI_API_VERSION": "<AZURE_OPENAI_API_VERSION>",
"HUGGINGFACEHUB_API_TOKEN": "<HUGGINGFACEHUB_API_TOKEN>",
"VOYAGE_API_KEY": "<VOYAGE_API_KEY>",
"VOYAGE_TRUNCATION": "<VOYAGE_TRUNCATION>",
"VOYAGE_BATCH_SIZE": "<VOYAGE_BATCH_SIZE>",
"LANGSMITH_TRACING": "<LANGSMITH_TRACING>",
"LANGSMITH_API_KEY": "<LANGSMITH_API_KEY>",
"LANGSMITH_PROJECT": "<LANGSMITH_PROJECT>",
"LANGSMITH_ENDPOINT": "<LANGSMITH_ENDPOINT>",
"METADATA_INDEXED_FIELDS": "<METADATA_INDEXED_FIELDS>",
"METADATA_INDEX_SYNC_MODE": "<METADATA_INDEX_SYNC_MODE>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"FASTMCP_HOST": "<FASTMCP_HOST>",
"FASTMCP_PORT": "<FASTMCP_PORT>",
"FASTMCP_STATELESS_HTTP": "<FASTMCP_STATELESS_HTTP>",
"DISABLED_TOOLS": "<DISABLED_TOOLS>",
"MCP_AUTH_TOKEN": "<MCP_AUTH_TOKEN>",
"MCP_AUTH_CLIENT_ID": "<MCP_AUTH_CLIENT_ID>",
"MCP_AUTH_PROVIDER": "<MCP_AUTH_PROVIDER>",
"MCP_SERVER_INSTRUCTIONS": "<MCP_SERVER_INSTRUCTIONS>"
}
}
}
}
启动命令uvx mcp-context-server
需要配置的环境变量
LOG_LEVELLog level
STORAGE_BACKENDStorage backend type: sqlite (default) or postgresql
MAX_IMAGE_SIZE_MBMaximum individual image size in megabytes
MAX_TOTAL_SIZE_MBMaximum total request size in megabytes
DB_PATHCustom database file location path
POOL_MAX_READERSMaximum number of concurrent read connections in the pool
POOL_MAX_WRITERSMaximum number of concurrent write connections in the pool
POOL_CONNECTION_TIMEOUT_SConnection timeout in seconds
POOL_IDLE_TIMEOUT_SIdle connection timeout in seconds
POOL_HEALTH_CHECK_INTERVAL_SConnection health check interval in seconds
RETRY_MAX_RETRIESMaximum number of retry attempts for failed operations
RETRY_BASE_DELAY_SBase delay in seconds between retry attempts
RETRY_MAX_DELAY_SMaximum delay in seconds between retry attempts
RETRY_JITTEREnable random jitter in retry delays
RETRY_BACKOFF_FACTORExponential backoff multiplication factor for retries
SQLITE_FOREIGN_KEYS密钥Enable SQLite foreign key constraints
SQLITE_JOURNAL_MODESQLite journal mode (e.g., WAL, DELETE)
SQLITE_SYNCHRONOUSSQLite synchronous mode (e.g., NORMAL, FULL, OFF)
SQLITE_TEMP_STORESQLite temporary storage location (e.g., MEMORY, FILE)
SQLITE_MMAP_SIZESQLite memory-mapped I/O size in bytes
SQLITE_CACHE_SIZESQLite cache size (negative value for KB, positive for pages)
SQLITE_PAGE_SIZESQLite page size in bytes
SQLITE_WAL_AUTOCHECKPOINTSQLite WAL autocheckpoint threshold in pages
SQLITE_BUSY_TIMEOUT_MSSQLite busy timeout in milliseconds
SQLITE_WAL_CHECKPOINTSQLite WAL checkpoint mode (e.g., PASSIVE, FULL, RESTART)
SHUTDOWN_TIMEOUT_SServer shutdown timeout in seconds
SHUTDOWN_TIMEOUT_TEST_STest mode shutdown timeout in seconds
QUEUE_TIMEOUT_SQueue operation timeout in seconds
QUEUE_TIMEOUT_TEST_STest mode queue timeout in seconds
CIRCUIT_BREAKER_FAILURE_THRESHOLDCircuit breaker failure threshold before opening
CIRCUIT_BREAKER_RECOVERY_TIMEOUT_SCircuit breaker recovery timeout in seconds
CIRCUIT_BREAKER_HALF_OPEN_MAX_CALLSMaximum calls allowed in circuit breaker half-open state
POSTGRESQL_CONNECTION_STRING密钥Complete PostgreSQL connection string (overrides individual settings if provided)
POSTGRESQL_HOSTPostgreSQL server host address
POSTGRESQL_PORTPostgreSQL server port number
POSTGRESQL_USERPostgreSQL database username
POSTGRESQL_PASSWORD密钥PostgreSQL database password
POSTGRESQL_DATABASEPostgreSQL database name
POSTGRESQL_POOL_MINPostgreSQL connection pool minimum size
POSTGRESQL_POOL_MAXPostgreSQL connection pool maximum size
POSTGRESQL_POOL_TIMEOUT_SPostgreSQL connection pool timeout in seconds
POSTGRESQL_COMMAND_TIMEOUT_SPostgreSQL command execution timeout in seconds
POSTGRESQL_MIGRATION_TIMEOUT_STimeout in seconds for PostgreSQL migration operations (default: 300)
POSTGRESQL_MAX_INACTIVE_LIFETIME_SClose idle PostgreSQL connections after this many seconds (0 to disable, default: 300)
POSTGRESQL_MAX_QUERIESRecycle PostgreSQL connections after this many queries (0 to disable, default: 10000)
POSTGRESQL_TCP_KEEPALIVES_IDLE_SSeconds of idle time before sending first TCP keepalive probe (0 to disable, default: 15)
POSTGRESQL_TCP_KEEPALIVES_INTERVAL_SSeconds between subsequent TCP keepalive probes (0 to disable, default: 5)
POSTGRESQL_TCP_KEEPALIVES_COUNTNumber of failed TCP keepalive probes before connection is considered dead (0 to disable, default: 3)
POSTGRESQL_STATEMENT_CACHE_SIZEasyncpg prepared statement cache size. Set to 0 for external pooler compatibility (PgBouncer transaction mode, Pgpool-II, etc.). Default: 100
POSTGRESQL_MAX_CACHED_STATEMENT_LIFETIME_SMaximum lifetime of cached prepared statements in seconds (default: 300). Has no effect when statement_cache_size=0
POSTGRESQL_MAX_CACHEABLE_STATEMENT_SIZEMaximum size of statement to cache in bytes (default: 15360). Has no effect when statement_cache_size=0
POSTGRESQL_SSL_MODEPostgreSQL SSL mode (disable, allow, prefer, require, verify-ca, verify-full)
POSTGRESQL_SCHEMAPostgreSQL schema name for table and index operations (default: public)
ENABLE_SEMANTIC_SEARCHEnable semantic search functionality
ENABLE_EMBEDDING_GENERATIONEnable embedding generation for stored context. Default true - server fails if dependencies not met. Set false to disable embeddings.
OLLAMA_HOSTOllama API host URL for embedding generation
OLLAMA_AUTO_PULLAutomatically pull missing Ollama models on startup (default: true)
OLLAMA_PULL_TIMEOUT_STimeout in seconds for pulling Ollama models (default: 900, range: 30-3600)
EMBEDDING_OLLAMA_TRUNCATEOllama embedding truncation mode: false (default) returns error when context exceeded, true enables silent truncation
EMBEDDING_OLLAMA_NUM_CTXOllama embedding context window size in tokens (default: 4096, range: 512-2097152)
EMBEDDING_MODELEmbedding model name for semantic search
EMBEDDING_DIMEmbedding vector dimensions
EMBEDDING_TIMEOUT_STimeout in seconds for embedding generation API calls
EMBEDDING_RETRY_MAX_ATTEMPTSMaximum number of retry attempts for embedding generation
EMBEDDING_RETRY_BASE_DELAY_SBase delay in seconds between retry attempts (with exponential backoff)
EMBEDDING_MAX_CONCURRENTMaximum concurrent embedding generation operations (default: 3, range: 1-20)
ENABLE_SUMMARY_GENERATIONEnable summary generation for stored context. Default true - server fails if dependencies not met. Set false to disable summaries.
SUMMARY_PROVIDERSummary provider: ollama (default), openai, or anthropic
SUMMARY_MODELSummary generation model name (default: qwen3:0.6b)
SUMMARY_MAX_TOKENS密钥Maximum output tokens for summary generation (default: 4000, range: 50-16384). Increase if summaries are truncated by reasoning models
SUMMARY_TIMEOUT_STimeout in seconds for summary generation API calls
SUMMARY_RETRY_MAX_ATTEMPTSMaximum number of retry attempts for summary generation
SUMMARY_RETRY_BASE_DELAY_SBase delay in seconds between retry attempts (with exponential backoff)
SUMMARY_MAX_CONCURRENTMaximum concurrent summary generation operations (default: 3, range: 1-20)
SUMMARY_PROMPTCustom summarization prompt. Overrides the built-in default. Used as system message for the LLM.
SUMMARY_MIN_CONTENT_LENGTHMinimum text content length in characters to trigger summary generation (default: 500, range: 0-10000). Set to 0 to always generate.
SUMMARY_OLLAMA_NUM_CTXOllama summary context window size in tokens (default: 32768, range: 512-2097152)
SUMMARY_OLLAMA_TRUNCATEOllama summary truncation mode: false (default) returns error when context exceeded, true enables silent truncation
SUMMARY_OPENAI_REASONING_EFFORTReasoning effort level for OpenAI reasoning models (default: low). Valid values vary by generation: gpt-5: low, medium, high; gpt-5.1+: none, low, medium, high, xhigh. Default low is universally valid across all generations
SUMMARY_ANTHROPIC_EFFORTEffort level for Anthropic Claude models (default: none). Valid values: max, high, medium, low. Controls inference effort (adaptive thinking)
ANTHROPIC_API_KEY密钥Anthropic API key for summary generation
ENABLE_FTSEnable full-text search functionality
FTS_LANGUAGELanguage for FTS stemming (e.g., english, german, french)
FTS_RERANK_WINDOW_SIZECharacters of context around each FTS match for reranking passage extraction (default: 750)
FTS_RERANK_GAP_MERGEMerge FTS match regions within this character distance (default: 100)
ENABLE_HYBRID_SEARCHEnable hybrid search combining FTS and semantic search with RRF fusion
HYBRID_RRF_KRRF smoothing constant for hybrid search (default 60)
HYBRID_RRF_OVERFETCHMultiplier for over-fetching results before RRF fusion (default: 2)
HYBRID_FTS_OR_THRESHOLDMinimum significant query terms to switch hybrid FTS from AND to OR logic (default: 4)
SEARCH_DEFAULT_SORT_BYDefault sort order for search results: relevance (only 'relevance' supported in current version)
SEARCH_TRUNCATION_LENGTHMaximum character length for truncated text_content in search results (default: 300, range: 50-1000)
ENABLE_CHUNKINGEnable text chunking for embedding generation (default: true)
CHUNK_SIZETarget chunk size in characters (default: 1500)
CHUNK_OVERLAPOverlap between chunks in characters (default: 150)
CHUNK_AGGREGATIONChunk score aggregation method: max (only 'max' supported in current version)
CHUNK_DEDUP_OVERFETCHMultiplier for over-fetching chunks before deduplication (default: 5)
ENABLE_RERANKINGEnable cross-encoder reranking of search results (default: true)
RERANKING_PROVIDERReranking provider (default: flashrank)
RERANKING_MODELReranking model name (default: ms-marco-MiniLM-L-12-v2)
RERANKING_MAX_LENGTHMaximum input length for reranking in tokens (default: 512)
RERANKING_OVERFETCHMultiplier for over-fetching results before reranking (default: 4)
RERANKING_CACHE_DIRDirectory for caching reranking models
RERANKING_CHARS_PER_TOKEN密钥Estimated characters per token for passage size validation (default: 4.0, range: 2.0-8.0)
RERANKING_INTRA_OP_THREADSONNX Runtime intra-operation parallelism threads for reranking (default: 0 = auto-detect)
RERANKING_CPU_MEM_ARENAEnable ONNX Runtime CPU memory arena for reranking (default: false)
RERANKING_BATCH_SIZEMaximum passages per ONNX Runtime inference batch during reranking (default: 32)
EMBEDDING_PROVIDEREmbedding provider: ollama (default), openai, azure, huggingface, or voyage
OPENAI_API_KEY密钥OpenAI API key for OpenAI embedding provider
OPENAI_API_BASECustom base URL for OpenAI-compatible APIs
OPENAI_ORGANIZATIONOpenAI organization ID
AZURE_OPENAI_API_KEY密钥Azure OpenAI API key
AZURE_OPENAI_ENDPOINTAzure OpenAI endpoint URL
AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAMEAzure OpenAI embedding deployment name
AZURE_OPENAI_API_VERSIONAzure OpenAI API version (default: 2024-02-01)
HUGGINGFACEHUB_API_TOKEN密钥HuggingFace Hub API token for HuggingFace embedding provider
VOYAGE_API_KEY密钥Voyage AI API key for Voyage embedding provider
VOYAGE_TRUNCATIONVoyage AI truncation mode: false (default) returns error when context exceeded, true enables silent truncation
VOYAGE_BATCH_SIZEVoyage AI batch size for embedding requests
LANGSMITH_TRACINGEnable LangSmith tracing
LANGSMITH_API_KEY密钥LangSmith API key
LANGSMITH_PROJECTLangSmith project name
LANGSMITH_ENDPOINTLangSmith API endpoint URL
METADATA_INDEXED_FIELDSComma-separated list of metadata fields to index (field:type format)
METADATA_INDEX_SYNC_MODEIndex sync mode: strict (fail), auto (sync), warn (log), additive (default, add missing only)
MCP_TRANSPORTTransport mode: stdio for local, http for Docker/remote
FASTMCP_HOSTHTTP bind address (use 0.0.0.0 for Docker)
FASTMCP_PORTHTTP port number
FASTMCP_STATELESS_HTTPEnable stateless HTTP mode for horizontal scaling. Enabled by default as the server has no stateful MCP features. Set to false only if you need server-side MCP session tracking.
DISABLED_TOOLSComma-separated list of tools to disable (e.g., delete_context,update_context)
MCP_AUTH_TOKEN密钥Bearer token for HTTP authentication (required when using SimpleTokenVerifier)
MCP_AUTH_CLIENT_ID密钥Client ID to assign to authenticated requests
MCP_AUTH_PROVIDER密钥Authentication provider: none (default), simple_token
MCP_SERVER_INSTRUCTIONSCustom server instructions text. Overrides built-in default. Set to empty string to disable.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-context-server2.2.2
ocighcr.io/alex-feel/mcp-context-server:2.2.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Context Server

MCP Context Server - 基于 MCP 的服务,为 LLM Agent 提供持久化多模态上下文存储

PyPI MCP Registry License: Elastic License 2.0 Ask DeepWiki

一款高性能的 Model Context Protocol(MCP)服务,为 LLM Agent 提供持久化多模态上下文存储。该服务基于 FastMCP 构建,可通过基于线程的作用域,在多个处理同一任务的 Agent 之间无缝共享上下文。

警告

从 v2.x 升级? 3.x.x 版本采用了新的数据库架构,并使用 UUIDv7 主键。现有的 v2.x 数据库必须先进行一次性数据迁移,才能在 v3.x.x 中使用。服务附带了可选的 CLI mcp-context-server-migrate。

升级前请参阅迁移指南。 全新安装不受影响。

主要功能

  • 多模态上下文存储:存储和检索文本与图像
  • UUIDv7 上下文标识符:每条上下文记录都由 32 个字符的小写十六进制 UUIDv7 值标识,提供按时间排序、全局唯一且按字典序稳定排序的 ID
  • 基于线程的范围划分:处理同一任务的 Agent 通过线程 ID 共享上下文
  • 逐条记录访问控制:每条记录都有所有者、private 或 public 可见性,以及可选的用户或群组授权;SQLite 和 PostgreSQL 都会在每次读取、更新和删除时执行访问控制。使用 IdP 签发的 JWT 后,每个调用方只能查找、计数和更改其有权访问的记录;记录所有者可通过 share_context 与用户或群组共享记录;每条返回的记录都会报告其 visibility 以及调用方是否为其所有者。请参阅访问模型
  • 匿名读取访问:向没有身份提供商账户的人工读者提供一个共享令牌,用于读取 public 记录,且绝不能写入:对于主体名称为 ACCESS_CONTROL_ANONYMOUS_PRINCIPAL 的所有写入请求,服务都会拒绝;令牌必须设置过期时间。请参阅匿名读取访问
  • PostgreSQL 行级安全(可选):设置 ENABLE_POSTGRESQL_RLS=true 后,PostgreSQL 也会在数据库中执行访问模型,因此,即使查询应用访问规则时存在缺陷,也不会暴露其他主体的记录。读取操作通过由所有者拥有、受角色控制的视图进行,同时保留所有搜索索引。请参阅 行级安全(PostgreSQL)
  • 灵活的元数据筛选:使用任意可序列化为 JSON 的字段存储自定义结构化数据,并通过 16 种强大的运算符进行筛选
  • 日期范围筛选:使用 ISO 8601 格式的创建时间戳筛选上下文记录
  • 基于标签的组织方式:通过规范化、已建立索引的标签,高效检索上下文
  • 摘要生成:可选的自动大模型摘要功能,会在所有搜索工具结果中同时返回摘要和截断后的 text_content,提升 Agent 上下文效率(默认启用 Ollama)
  • 全文搜索:支持词干提取、排序、布尔查询(FTS5/tsvector)和交叉编码器重排的语言学搜索。默认自动启用(ENABLE_FTS=auto),无需额外依赖
  • 语义搜索:通过交叉编码器重排进行向量相似度搜索,实现基于含义的检索。只要有可用的嵌入提供方,就会默认自动启用(ENABLE_SEMANTIC_SEARCH=auto,默认启用嵌入生成)
  • 混合搜索:使用倒数排名融合(RRF)结合全文搜索与语义搜索,并通过交叉编码器重排。只要全文搜索或语义搜索至少有一项可用,就会默认自动启用(ENABLE_HYBRID_SEARCH=auto)
  • 服务端 Grep:对存储的记录进行逐行、无排序的字面值/正则表达式模式匹配(grep_context)——作为全文/语义搜索的精确定位补充,支持 ripgrep 风格的输出模式和有界结果。默认自动启用(ENABLE_GREP_CONTEXT=auto);使用纯 Python 实现,因此在 SQLite 和 PostgreSQL 上的行为完全一致
  • 记录导航(index_tree):navigate_context 会按需为每条记录构建基于 Markdown 标题的目录,并以条目摘要作为根节点;可选的逐节点大模型摘要(默认开启)可丰富各个章节。与 read_context_range 搭配即可提取任意章节
  • 部分读取:read_context_range 可按字符范围、行范围或大纲 node_id 返回单条记录的片段,让 Agent 只需读取长记录中的相关部分,无需读取全文
  • 知识库同步:在 kb:<corpus> 线程中托管手册、运行手册等文档语料,供 Agent 像搜索和导航其他上下文一样进行操作。mcp-context-ingest 命令可上传文档目录并保持同步,按只读的 plan_context_sync 工具制定的计划存储新文件、更新已更改的文件并移除已删除的文件(ENABLE_CONTEXT_SYNC=auto)。请参阅知识库指南
  • 交叉编码器重排:默认启用,使用 FlashRank 交叉编码器模型自动优化结果,提升搜索精准度
  • 嵌入压缩(默认开启):从 v3.0.0 起,开箱即用即可将嵌入存储量减少约 8 倍。位打包压缩向量无需更改工具接口即可支持语义搜索和混合搜索;读取路径还绕过了 pgvector 的 >2000 维 HNSW 限制。设置 ENABLE_EMBEDDING_COMPRESSION=false 可选择退出并保留 fp32 存储。请参阅嵌入压缩指南
  • 多种数据库后端:可选择 SQLite(默认、零配置)或 PostgreSQL(高并发、适用于生产环境)
  • 高性能:WAL 模式(SQLite)/MVCC(PostgreSQL)、策略性索引和异步操作
  • 符合 MCP 标准:可与 Claude Code、LangGraph 及任何兼容 MCP 的客户端配合使用
  • 适用于生产环境:全面的测试覆盖、类型安全和健壮的错误处理

连接到 AI 助手

将 MCP Context Server 连接到 Claude Code,最快的方法是使用一条命令运行 Docker 引导程序。

分步说明、前置条件、故障排除以及更新/卸载命令,请参阅连接到 AI 助手指南。

环境配置

服务器完全通过环境变量进行配置,支持核心设置、传输、身份验证、嵌入提供方、摘要生成、搜索功能、数据库调优等。可在 MCP 客户端配置中、.env 文件中或直接在 shell 中设置变量。

有关所有环境变量的完整参考(包括类型、默认值、约束和说明),请参阅环境变量参考。

摘要生成

摘要生成功能会自动为每条已存储的上下文条目生成基于大模型的简洁摘要。所有搜索工具结果都会在 summary 字段中返回摘要,并附带经过截断的 text_content,提供信息密集的摘要,帮助 Agent 判断相关性,而无需获取完整条目。

有关详细说明,包括所有提供方(Ollama、OpenAI、Anthropic)、模型选择和自定义提示词配置,请参阅摘要生成指南。

语义搜索

语义搜索默认自动启用(ENABLE_SEMANTIC_SEARCH=auto):只要嵌入提供方可用(默认会生成嵌入),semantic_search_context 工具就会自动注册;否则会静默跳过。有关多种嵌入提供方(Ollama、OpenAI、Azure、HuggingFace、Voyage)的详细说明,以及如何明确控制此开关,请参阅语义搜索指南。

全文搜索

全文搜索默认自动启用(ENABLE_FTS=auto),无需额外依赖,使用内置数据库 FTS 引擎(SQLite 上为 FTS5,PostgreSQL 上为 tsvector)。有关语言处理、词干提取、排序和布尔查询,请参阅全文搜索指南。

混合搜索

混合搜索默认自动启用(ENABLE_HYBRID_SEARCH=auto):只要全文搜索或语义搜索至少有一项可用,hybrid_search_context 工具就会自动注册。有关使用互惠排名融合(RRF)组合 FTS 和语义搜索的信息,请参阅混合搜索指南。

元数据筛选

有关全面的元数据筛选说明,包括 16 种运算符、嵌套 JSON 路径和性能优化,请参阅元数据指南。

数据库后端

服务器支持多种数据库后端,可通过 STORAGE_BACKEND 环境变量进行选择。SQLite(默认)可提供零配置本地存储,非常适合单用户部署。PostgreSQL 则具备高性能,写入吞吐量可提升 10 倍以上,适合多用户和高流量部署。

有关详细配置说明,包括使用 Docker 设置 PostgreSQL、Supabase 集成、连接方式和故障排除,请参阅数据库后端指南。

API 参考

MCP Context Server 提供 21 个用于上下文管理的 MCP 工具:

核心操作: store_context、search_context、get_context_by_ids、delete_context、update_context、list_threads、get_statistics

搜索工具: semantic_search_context、fts_search_context、hybrid_search_context

导航工具(定位 / 导航 / 提取): grep_context、navigate_context、read_context_range

同步工具: plan_context_sync、list_ingest_state

共享工具: share_context、unshare_context、list_context_grants

批量操作: store_context_batch、update_context_batch、delete_context_batch

如需查看包含参数、返回值、筛选选项和示例的完整工具文档,请参阅 API 参考。如需了解何时使用 grep、全文搜索或语义搜索、index_tree 以及部分读取,请参阅grep、导航与部分读取。如需了解如何托管和同步文档语料库,请参阅知识库指南。

Docker 部署

如需使用 HTTP 传输和容器编排进行生产部署,可使用适用于 SQLite、PostgreSQL 和外部 PostgreSQL(Supabase)的 Docker Compose 配置。有关设置说明和客户端连接详情,请参阅 Docker 部署指南。

Kubernetes 部署

如需部署到 Kubernetes,可使用 Helm chart,并通过可配置的值适配不同环境。请参阅 Helm 部署指南了解安装说明,或参阅 Kubernetes 部署指南了解 Kubernetes 的一般概念。

身份验证

对于需要身份验证的 HTTP 传输部署,请参阅身份验证指南,了解 bearer token 和 IdP 签发的 JWT 配置、与用户和群组共享条目,以及通过操作员签发的 token 进行匿名只读访问。

获取帮助

许可证

MCP Context Server 根据 Elastic License 2.0(ELv2)授权。

简而言之:您可以免费自由地使用、复制、修改、分发和运行本软件,可用于个人项目、任何规模公司的内部项目以及商业工作。未经商业协议许可,您唯一不得进行的操作是将本软件作为托管或管理服务提供给第三方,使用户能够访问其任何实质性功能(例如,基于本软件构建的云端“Agent 记忆”服务)。

请参阅商业许可,了解以通俗语言说明的许可与禁止事项示例。有关商业许可(包括托管或管理服务权利),请联系 [email protected]。

截至 v2.2.2(含)的版本均以 MIT License 发布,且仍可依据该许可使用;Elastic License 2.0 适用于 v3.0.0 及之后的版本。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。