EVA维基MCP(Python)
MCP服务器,通过其JSON-RPC 2.2 API与EVA Wiki/EVA团队集成(/api/). 用Python实现,使用官方 mcp Python SDK。
快速入门
安装
pipx install evawiki-mcp或者: pip install evawiki-mcp,或从GitHub安装:
pip install git+https://github.com/vsevolodlukovsky/evawiki-mcp.git
pipx install git+https://github.com/vsevolodlukovsky/evawiki-mcp.git跑
验证它是否运行:
evawiki-mcp --help
evawiki-mcp如果没有参数,服务器将在MCP客户端的stdio模式下运行。
MCP客户端配置
在MCP客户端(游标等)中配置 evawiki-mcp 命令和环境变量。看 示例/mcp.json 对于模板。
{
"mcpServers": {
"evawiki": {
"command": "evawiki-mcp",
"env": {
"EVAWIKI_API_URL": "https://eva.example.com/api/",
"EVAWIKI_API_TOKEN": "YOUR_TOKEN",
"EVAWIKI_VERIFY_SSL": "false"
}
}
}
}替代方案(不安装软件包): "command": "python", "args": ["-m", "evawiki_mcp.server"] 同样的 env.
故障排除
- python 要求3.10+。
- 未找到命令: 之后
pipx install或pip install,确保evawiki-mcp处于PATH(重新启动终端或运行pipx ensurepath). - EVAWIKI_API_URL/EVAWIKI_API_TOKEN丢失: 如果没有设置,服务器将在第一次工具调用时失败——在MCP客户端中配置它们。
- 音乐节目 : 服务器通过stdin/stdout进行通信;不要以交互方式运行它并在同一终端中键入。
Docker/HTTP模式
服务器支持两种传输方式: 标准 (默认情况下,适用于本地MCP客户端)和 可流式传输http (用于在Docker或VM中作为网络服务运行)。
请注意,stdio与HTTP环境变量。 在 标准 模式MCP客户端(游标等)启动服务器进程本身,因此env客户端配置中的块被传播到服务器。在 超文本传输协议 模式服务器是一个单独的进程(通常是Docker容器),客户端只通过url.客户端env块是 被忽视.EVAWIKI_API_URL/EVAWIKI_API_TOKEN必须在服务器端设置--通过.env对于作曲,--env-file为了docker run,或为裸机导出shell envevawiki-mcp --transport http。如果它们丢失,服务器会记录[WARN]启动时转到stderr,每次工具调用都失败EVAWIKI_API_URL is not set.
Docker Compose快速入门
cp .env.example .env
# edit .env — set EVAWIKI_API_URL and EVAWIKI_API_TOKEN
docker compose up -d --build服务器正在监听 http://localhost:8000/mcp.
快速启动docker run
docker build -t evawiki-mcp .
docker run --rm -p 127.0.0.1:8000:8000 --env-file .env evawiki-mcp不带Docker的HTTP模式
evawiki-mcp --transport http
# or via env vars:
MCP_TRANSPORT=http MCP_HOST=127.0.0.1 MCP_PORT=8000 evawiki-mcpMCP客户端配置(HTTP)
{
"mcpServers": {
"evawiki": {
"url": "http://localhost:8000/mcp"
}
}
}CLI选项
| 标志 | 环境变量 | 默认值 | 描述 |
|---|---|---|---|
--transport | MCP_TRANSPORT | stdio | stdio 或 http |
--host | MCP_HOST | 127.0.0.1 | 监听地址(HTTP模式) |
--port | MCP_PORT | 8000 | 侦听端口(HTTP模式) |
--path | MCP_PATH | /mcp | HTTP端点路径 |
安全说明
HTTP传输具有 无内置身份验证。不要直接将其暴露在公共互联网上。推荐选项:
- 绑定到
127.0.0.1并通过SSH隧道访问。 - 放置在具有基本身份验证或OAuth的反向代理(nginx/traefik)后面。
- 对于单用户本地使用,首选stdio模式。
______________________________________________________________________
特性
- 按代码阅读文档/文章(
CmfDocument.get). - 仅获取文档文本。
- 按名称搜索文档(BQL筛选器+
CmfDocument.list). - 更新文档文本+可选发布(
CmfDocument.update+CmfDocument.do_publish). - 下载附件(基于官方EVA KB示例)。
- 列出项目和用户信息。
- 原始EVA API调用(
evawiki_raw_call). - Ping以检查API可用性和令牌有效性(
evawiki_ping). - 文档树和层次结构: 得到完整的树(
evawiki_get_document_tree),列出部分/文件夹(evawiki_list_sections),得到一个有孩子的部分(evawiki_get_section),移动文档(evawiki_move_document),使用面包屑和同级文件(evawiki_get_document_with_context).
安装(来源)
git clone https://github.com/vsevolodlukovsky/evawiki-mcp.git
cd evawiki-mcp
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]"配置(环境变量)
服务器从环境中读取连接参数:
EVAWIKI_API_URL-EVA JSON-RPC API的完整URL,例如。https://eva.example.com/api/.EVAWIKI_API_TOKEN--身份验证的承载令牌(来自EVA中的用户配置文件)。EVAWIKI_VERIFY_SSL—true/false(默认值true).集false禁用TLS证书验证。EVAWIKI_TIMEOUT--HTTP请求超时(秒)(默认值30).
MCP客户端配置(游标/OpenAI代理)
使用 evawiki-mcp 作为命令或复制 示例/mcp.json 并填写您的URL和令牌。
示例 mcpServers 块:
{
"mcpServers": {
"evawiki": {
"command": "evawiki-mcp",
"env": {
"EVAWIKI_API_URL": "https://eva.example.com/api/",
"EVAWIKI_API_TOKEN": "YOUR_TOKEN",
"EVAWIKI_VERIFY_SSL": "false"
}
}
}
}代码结构
src/evawiki_mcp/evawiki_client.py--低级EVA客户端(EvaWikiClient)通过JSON-RPC 2.2。src/evawiki_mcp/server.py--MCP服务器(FastMCP)及其工具:
- evawiki_get_document_by_code, evawiki_get_document_text - evawiki_list_documents /按名称搜索 - evawiki_update_document_text, evawiki_download_all_attachments - evawiki_list_projects, evawiki_find_user, evawiki_ping, evawiki_raw_call - 树/层次结构: evawiki_get_document_tree, evawiki_list_sections, evawiki_get_section, evawiki_move_document, evawiki_get_document_with_context
所有工具使用 EvaWikiClient,其中:
- 增加
jsonrpc: "2.2"和callid(UUID)。 - 发送
args,kwargs,fields,filter,flags,no_meta根据EVA文件。 - EVA返回时引发明显的异常
error.
______________________________________________________________________
EVA维基MCP(Python)--руский
通过JSON-RPC 2.2 API与EVA Wiki/EVA团队集成的MCP服务器/api/). Python使用官方 mcp Python SDK。
机会
- 阅读文档/文章(
CmfDocument.get). - 仅获取文档文本。
- 按名称搜索文档(BQL过滤器和
CmfDocument.list). - 更新文本+(可选)发布(
CmfDocument.update+CmfDocument.do_publish). - 下载和下载附件(基于官方KB EVA中的示例)。
- 获取项目列表和用户信息。
- EVA API的通用原始调用(
evawiki_raw_call). - 验证API的可用性和token的有效性(
evawiki_ping). - 文档树和层次结构: 树的全称(
evawiki_get_document_tree1、部分列表(evawiki_list_sections(1)一段内容(evawiki_get_section1、文件的移动(evawiki_move_document)面包屑和邻居的文件(evawiki_get_document_with_context).
安装
pipx install evawiki-mcp
# или: pip install git+https://github.com/vsevolodlukovsky/evawiki-mcp.git源代码:克隆存储库, pip install -e ".[dev]".
配置(环境变量)
服务器从环境中读取连接设置:
EVAWIKI_API_URL–JSON-RPC EVA API的完整URL,例如https://eva.example.com/api/.EVAWIKI_API_TOKEN-Bearer授权令牌(来自个人EVA用户卡)。EVAWIKI_VERIFY_SSL—true/false(默认)true).当false禁用TLS证书验证。EVAWIKI_TIMEOUT-以秒为单位的HTTP请求超时(默认情况下)30).
客户端配置MCP(cursor/openai agents)
使用命令 evawiki-mcp 和环境变量。例子 示例/mcp.json.
Docker/HTTP模式
服务器支持两种传输: 标准 (默认情况下,本地MCP客户端) 可流式传输-http (用于在Docker或VM中作为网络服务运行)
STDIO vs HTTP中的ENV变量。 В 标准 客户端(cursor等)自己启动服务器进程,因此块env从客户端配置到服务器。В 超文本传输协议 服务器是一个独立的进程(通常是Docker容器),客户端只访问它。url块env客户关系 忽略.EVAWIKI_API_URL/EVAWIKI_API_TOKEN需要在服务器端设置:通过.env(作曲),--env-file(docker run一般出口evawiki-mcp --transport http如果没有指定变量,服务器将打印[WARN]在stderr中,启动时,每个tool-call都会从EVAWIKI_API_URL is not set.
使用Docker Compose快速启动
cp .env.example .env
# отредактируйте .env — укажите EVAWIKI_API_URL и EVAWIKI_API_TOKEN
docker compose up -d --build服务器正在听 http://localhost:8000/mcp.
快速启动Docker Run
docker build -t evawiki-mcp .
docker run --rm -p 127.0.0.1:8000:8000 --env-file .env evawiki-mcp无Docker的HTTP模式
evawiki-mcp --transport http
# или через переменные окружения:
MCP_TRANSPORT=http MCP_HOST=127.0.0.1 MCP_PORT=8000 evawiki-mcpMCP客户端配置(HTTP)
{
"mcpServers": {
"evawiki": {
"url": "http://localhost:8000/mcp"
}
}
}CLI设置
标签变量默认值描述 |------|------------|--------------|----------| | --transport | MCP_TRANSPORT | stdio | stdio 或 http | | --host | MCP_HOST | 127.0.0.1 收听地址(HTTP) | --port | MCP_PORT | 8000 港口(HTTP) | --path | MCP_PATH | /mcp HTTP Endpoint路径
安全
HTTP 传输 没有内置授权不要直接在开放的互联网上发布。建议:
- 听着
127.0.0.1穿过SSH隧道。 - 使用Basic Auth或OAuth设置反向代理(nginx/traefik)。
- 对于本地用户,请使用stdio。
代码结构
src/evawiki_mcp/evawiki_client.pyEVA客户机(EvaWikiClient)在JSON-RPC 2.2上。src/evawiki_mcp/server.py— 基于 MCP 的服务器FastMCP使用工具(包括树和层次结构-见上文)。
