Token导航 LogoToken导航TokenDH.com
Arca MCP logo
搜索检索stdio官方级别未说明来源级核验

Arca MCP

MCP Server

Arca MCP是一个提供语义记忆存储和检索的服务,通过向量嵌入实现自然语言查询,支持多租户隔离和逻辑存储桶组织,适用于AI代理和程序集成。

工具数

8

提示词数

0

GitHub Stars

0

资源数

0
搜索多租户PythonClaude记忆存储Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

m0nochr0me

提供方

m0nochr0me

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m app

详细介绍

MCP 方舟

一种模型上下文协议(MCP)服务器,通过向量嵌入提供语义记忆存储和检索。使用FastAPI+FastMCP构建,使用LanceDB进行矢量存储,使用Google Gemini进行嵌入生成。

特性

  • 语义搜索 --使用由向量相似性搜索支持的自然语言查询来存储和检索记忆
  • 双重访问 -用于AI代理的MCP工具+用于编程集成的REST API
  • 多租户隔离 --命名空间范围的操作通过 X-Namespace HTTP标头
  • Bucket组织 --将内存分组到逻辑桶中进行结构化存储
  • 嵌入缓存 -用于生成嵌入的Redis-supported缓存,以最大限度地减少API调用
  • 承载令牌认证 --用于安全访问的恒定时间令牌验证

先决条件

  • Python 3.14+
  • 紫外线 包管理器
  • 瑞迪斯
  • Google API密钥(用于Gemini嵌入)

快速开始

# Clone the repository
git clone https://github.com/your-org/arca-mcp.git
cd arca-mcp

# Install dependencies
uv sync --locked

# Configure environment
cp .env.example .env
# Edit .env with your ARCA_GOOGLE_API_KEY and ARCA_APP_AUTH_KEY

# Run the server
python -m app

服务器启动于 http://0.0.0.0:4201 默认情况下,MCP可在 /app/mcp 和REST API /v1.

配置

所有设置都是通过环境变量配置的 ARCA_ 前缀,或通过 .env 文件。

|变量|类型|默认值|描述| | - | - | - | - | | ARCA_APP_HOST | str | 0.0.0.0 |服务器绑定地址| | ARCA_APP_PORT | int | 4201 |服务器端口| | ARCA_APP_WORKERS | int | 1 |Uvicorn工人人数| | ARCA_APP_AUTH_KEY | str | 必需的 |MCP身份验证的承载令牌| | ARCA_TRANSPORT | str | streamable-http |MCP传输(stdio, http, sse, streamable-http) | | ARCA_DEBUG | bool | false |启用调试模式| | ARCA_LOG_MESSAGE_MAX_LEN | int | 2000 |最大日志消息长度| | ARCA_GOOGLE_API_KEY | str | 必需的 |Gemini嵌入的Google API密钥| | ARCA_EMBEDDING_MODEL | str | gemini-embedding-001 |Gemini嵌入模型名称| | ARCA_EMBEDDING_DIMENSION | int | 3072 |嵌入向量维度| | ARCA_VECTOR_STORE_PATH | str | ./lancedb |LanceDB存储目录| | ARCA_REDIS_HOST | str | localhost |Redis主机| | ARCA_REDIS_PORT | int | 6379 |Redis端口| | ARCA_REDIS_DB_CACHE | int | 4 |缓存的Redis数据库编号| | ARCA_REDIS_PASSWORD | str | null |Redis密码(可选)| | ARCA_CACHE_TTL | int | 3600 |默认缓存TTL(秒)(1小时)| | ARCA_CACHE_TTL_LONG | int | 604800 |以秒为单位的长缓存TTL(7天,用于嵌入)|

MCP工具

所有工具都安装在 memory 命名空间。操作的作用域为通过提供的命名空间 X-namespace HTTP标头(默认为 "default").

memory/add

使用向量嵌入将内容存储在内存中。

|参数|类型|必填|说明| | - | - | - | - | | content | str |是|要存储的内容| | bucket | str \| null |no |存储桶名称(默认为 "default") | | connected_nodes | list[str] \| null |创建时没有要链接的节点的UUID| | relationship_types | list[str] \| null |否|并行关系标签 connected_nodes |

退货: { "status": "Memory added", "memory_id": "" }

memory/get

通过语义相似性搜索检索记忆。

|参数|类型|必填|说明| | - | - | - | - | | query | str |是|自然语言搜索查询| | bucket | str \| null |否|按桶过滤| | top_k | int |no |结果数(默认值: 5) |

退货: { "status": "Memory retrieved", "results": [...] }

memory/delete

按UUID删除特定内存。

|参数|类型|必填|说明| | - | - | - | - | | memory_id | str |yes |要删除的内存的UUID|

退货: { "status": "Memory deleted" }

memory/clear

清空桶里的所有记忆。

|参数|类型|必填|说明| | - | - | - | - | | bucket | str \| null |no |要清除的Bucket(默认为 "default") |

退货: { "status": "Memories cleared" }

memory/list_buckets

列出当前命名空间中的所有bucket。

参数:

退货: { "buckets": ["default", "work", ...] }

memory/connect

在两个内存节点之间创建有向边。

|参数|类型|必填|说明| | - | - | - | - | | source_id | str |yes |源节点的UUID| | target_id | str |yes |目标节点的UUID| | relationship_type | str |是|边缘标签(例如。 "related_to", "depends_on") |

退货: { "status": "Memories connected" }

memory/disconnect

删除两个节点之间的一条或所有有向边。

|参数|类型|必填|说明| | - | - | - | - | | source_id | str |yes |源节点的UUID| | target_id | str |yes |目标节点的UUID| | relationship_type | str \| null |否|如果提供,仅删除此边缘标签;否则,移除所有边缘|

退货: { "status": "Memories disconnected" }

memory/traverse

从节点开始遍历知识图。

|参数|类型|必填|说明| | - | - | - | - | | memory_id | str |yes |起始节点的UUID| | relationship_type | str \| null |no |筛选此边标签的遍历| | depth | int |no |跳数(默认值: 1) |

退货: { "status": "Graph traversed", "results": [...] } --每个结果包括 _depth 现场。

REST API

所有REST端点都位于 /v1,要求a Authorization: Bearer header,并接受可选 X-Namespace 标题(默认为 "default").

交互式API文档可在 /docs 当服务器正在运行时。

|方法|路径|描述| | - | - | - | | POST | /v1/memories |添加内存| | POST | /v1/memories/search |语义相似度搜索| | DELETE | /v1/memories/{memory_id} |删除特定内存| | DELETE | /v1/memories?bucket=... |桶里的清晰记忆| | GET | /v1/buckets |列出所有桶| | POST | /v1/memories/connect |在两个节点之间创建有向边| | POST | /v1/memories/disconnect |删除两个节点之间的边| | GET | /v1/memories/{memory_id}/connected |从节点遍历知识图|

例子

所有示例都假设服务器运行在 localhost:4201.更换 $TOKEN 与你的 ARCA_APP_AUTH_KEY.

添加内存

curl -X POST http://localhost:4201/v1/memories \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Namespace: my_project" \
  -H "Content-Type: application/json" \
  -d '{"content": "User prefers dark mode", "bucket": "preferences"}'
{
  "status": "Memory added",
  "memory_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

搜索记忆

curl -X POST http://localhost:4201/v1/memories/search \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Namespace: my_project" \
  -H "Content-Type: application/json" \
  -d '{"query": "what theme does the user like?", "top_k": 3}'
{
  "status": "Memory retrieved",
  "results": [
    {
      "memory_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "content": "User prefers dark mode",
      "bucket": "preferences"
    }
  ]
}

删除内存

curl -X DELETE http://localhost:4201/v1/memories/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Namespace: my_project"
{
  "status": "Memory deleted"
}

清空一个桶

curl -X DELETE "http://localhost:4201/v1/memories?bucket=preferences" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Namespace: my_project"
{
  "status": "Memories cleared"
}

列出桶

curl http://localhost:4201/v1/buckets \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Namespace: my_project"
{
  "buckets": ["default", "preferences", "work"]
}

其他终点

|方法|路径|描述| | - | - | - | | GET | / |指数——回报 { "message": "OK" } | | GET | /health |健康检查——返回状态、版本、正常运行时间、执行ID| | GET | /docs |交互式OpenAPI文档| | * | /app/mcp |MCP可流式传输http端点|

码头工人

# Build
docker build -t arca-mcp .

# Run
docker run -p 4201:4201 \
  -e ARCA_APP_AUTH_KEY=your-secret-key \
  -e ARCA_GOOGLE_API_KEY=your-google-api-key \
  -e ARCA_REDIS_HOST=host.docker.internal \
  arca-mcp

Docker镜像使用Python 3.14 slim和UV进行依赖管理。

MCP客户端配置

示例 .mcp.json 用于连接MCP客户端(例如Claude Code):

{
  "mcpServers": {
    "arca_memory": {
      "type": "http",
      "url": "http://localhost:4201/app/mcp",
      "headers": {
        "Authorization": "Bearer ",
        "X-namespace": "my_namespace"
      }
    }
  }
}

建筑

              ┌─ /app/mcp → FastMCP Auth → MCP Tool Handler  ─┐
Request → FastAPI                                             ├→ Gemini Embedding (Redis cache) → LanceDB
              └─ /v1/*    → Bearer Auth  → REST Router ───────┘
                                  ↑
                        X-Namespace header (multi-tenancy)

模块布局

app/
├── __main__.py          # Uvicorn entry point
├── main.py              # FastAPI app, lifespan, MCP mount, REST router
├── api/
│   ├── deps.py          # Shared dependencies (auth, namespace extraction)
│   └── memory.py        # REST API router for memory operations
├── context/
│   └── memory.py        # MCP tool definitions (add, get, delete, clear, list_buckets)
├── core/
│   ├── config.py        # Pydantic BaseSettings with ARCA_ env prefix
│   ├── db.py            # LanceDB async connection management
│   ├── cache.py         # Redis cache wrapper
│   ├── ai.py            # Google Gemini AI client
│   └── log.py           # Loguru logging configuration
├── schema/
│   ├── memory.py        # REST API request/response models
│   └── status.py        # Response models (HealthCheckResponse, IndexResponse)
└── util/
    ├── embeds.py         # Embedding generation with Redis caching
    └── memory.py         # Core memory CRUD against LanceDB (PyArrow schema)

技术栈

目录标签

目录标签

搜索多租户PythonClaude记忆存储语义搜索本地部署向量数据库AI代理

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP