三域医研 · 科研算法引擎 (SanYu Research Engine)
RemoteAbout 三域医研 · 科研算法引擎 (SanYu Research Engine)
SanYu Research Engine is an MCP server for medical research, offering tools for statistics, bioinformatics, sequence work, literature, and writing. Responses label data sources and verification status; deterministic computation is distinguished from generation, which requires the appropriate key scope.
Key features
- 01Statistical tests, survival analysis, and study design
- 02Bioinformatics analysis and sequence processing
- 03Literature search and citation formatting
- 04Generation of study plans, writing, and reviews
- 05Data-source and verification labels in responses
Use cases
- 01Run ROC/AUC or survival analyses
- 02Perform differential expression or enrichment analysis
- 03Search PubMed and format citations
- 04Generate a paper draft and poll its job status
MCP support
It exposes 147 tools over a Streamable HTTP MCP server: 145 research actions and two meta-tools. The catalog is public, but execution requires a Bearer key; generation actions also require the generate scope and return asynchronous results checked with sanyu_job_status.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://sanyu.wentangkeji.com/api/mcpclaude mcp add --transport http kfx2026-sanyu-research https://sanyu.wentangkeji.com/api/mcp{"mcpServers":{"kfx2026-sanyu-research":{"type":"http","url":"https://sanyu.wentangkeji.com/api/mcp"}}}Open in Cursor{"servers":{"kfx2026-sanyu-research":{"type":"http","url":"https://sanyu.wentangkeji.com/api/mcp"}}}Open in VS Code{"mcpServers":{"kfx2026-sanyu-research":{"type":"http","url":"https://sanyu.wentangkeji.com/api/mcp"}}}{"mcpServers":{"kfx2026-sanyu-research":{"serverUrl":"https://sanyu.wentangkeji.com/api/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project README三域医研 · 科研算法引擎 (SanYu Research Engine) — MCP Server
正式中文名:三域医研 · 科研算法引擎;英文检索名 SanYu Research Engine。平台站:https://sanyu.wentangkeji.com
145 个动作 = 106 个确定性算法 + 39 个大模型生成类;对外暴露为 147 个 MCP 工具
(145 个动作 + 2 个元工具 sanyu_list_actions / sanyu_job_status)。
档位:当前生产为 L2 档(SANYU_OPEN_L2=1),即上表的 145/147;关闭该开关则为默认档 —— 106 个确定性动作 / 108 个 MCP 工具 / 0 个生成类,全部 readOnlyHint=true、不写库。
Medical research engines: 106 deterministic actions + 39 AI writers (L2 profile).
生成类工具的密钥前提(务必先读):39 个生成类动作(
api_class=gen,结果不可复现、readOnlyHint=false)需要generatescope 的密钥。generatescope 密钥可自助签发:在「API 密钥」页创建时选「AI 生成」类别即可(GET /api/keys/scopes里creatable: true,不需要管理员)。只用compute密钥调生成类会被scope_not_allowed(HTTP 403)明确拒绝,engine_status=not_run、cost=0——不执行、不扣分、不产生 LLM 费用。 也就是说:目录里列得出这 39 个工具,但当前拿不到生成结果。需要开通生成能力请联系平台另行签发对应类别的密钥;这不是工具故障。引擎口径(2026-11-10 复核):这 39 个动作按
api_class=gen归类、需要generatescope,但并非每一个都调用大模型——逐个核对执行体后确认,其中一部分是纯本地规则/文献计量引擎(选题可行性、新颖度、研究空白、选题热度评估),零 LLM token。响应体的data_source由服务端单一出口按实际执行体回填:确证的本地规则动作返回local_computation(data_source_verified=true),其余按分类兜底并标data_source_verified=false(来源未核验,请勿当作事实转述);排队阶段一律返回data_source=pending,不在执行前预先宣称来自大模型。 分类 / scope / 计费口径保持不变,避免把确证真 LLM 的动作误标成确定性算法。(实测:compute→403scope_not_allowed;generate→通过门禁、按各工具inputSchema补齐参数后异步返回job_id。)
106 个是确定性算法(SciPy / statsmodels / 自研算子),结果可复现,可以当结论用; 39 个归为生成类(选题 / 方案 / 写作 / 审稿 / 润色);其中多数调用大模型、结果不可复现,但含少量纯本地规则引擎(见上「引擎口径」),以响应体
data_source/data_source_verified为准,勿一概而论。 每个工具在_meta.sanyu/api_class里标了compute/data/gen—— 转述给用户时必须说清是哪一类,别把生成草稿说成算出来的结果。
调用需要自备密钥:目录和工具列表免费查看,执行需在 sanyu.wentangkeji.com/api-keys 免费领取一把 key, 填进
Authorization: Bearer sk-sanyu-xxx(注册送试用积分,执行失败不扣分)。只想先试试效果?
dna_translate、orf_find、roc_auc这三个工具无需密钥,每 IP 每天可试 20 次,返回体带demo:true与剩余次数。
一个跑在公网上的 MCP 服务器,把确定性算法(统计检验、生存分析、生信算子、引物设计、文献检索) 暴露给任何支持 MCP 的智能体(Claude、ChatGPT、Cursor、Cline、Dify、Coze、魔搭、自研脚本)。
自审计标签(每个响应都带)
这两个字段回答同一个问题:这次结果是算出来的,还是生成的?
data_source | 含义 | 能不能当结论 |
|---|---|---|
local_computation | 确定性算法算出,同输入同输出 | 可以(给复现参数) |
external_corpus | 读取真实语料(如 PMC 全文库)后计算 | 可以,注明语料版本 |
llm_generated | 大模型生成(选题 / 方案 / 写作 / 审稿 / 润色) | 不可复现,只能当草稿 |
user_data | 基于调用方上传的数据计算 | 可以,注明自有数据口径 |
pending | 已受理、尚未执行 | 什么都还没发生,不得预先宣称来源 |
data_source_verified | 含义 |
|---|---|
true | 标签由执行体亲自上报,或经三重证据确证 |
false | 标签按动作分类推断,未经执行体确认 |
⚠️
verified=false不等于结果无效。 它只说明"来源标签是按分类推断的", 数值本身照常可用;需要避免的是把来源当事实向用户断言,而不是把结果丢掉。
生成类为异步:提交后返回 data_source=pending + verified=false,
轮询到 status=succeeded 才拿 result 与最终标签。
它和"大模型套壳"的区别
| 别人的科研 agent | 这个 |
|---|---|
| LLM 生成数字,看起来像真的 | SciPy / statsmodels / 自研算子真算 |
| 你没法判断真假 | 每个响应强制带 engine_status = real / unavailable / error |
| 出错难追溯 | 每次调用落审计(参数只存 SHA-256,患者数据不进日志) |
| 缺参数就瞎猜 | 返回 hint_fields,智能体可自我修正,且不扣分 |
| 算不出也硬给 | 引擎不可用时如实返回 unavailable,不编造 |
连接
https://sanyu.wentangkeji.com/api/mcp
- 传输:Streamable HTTP(协议
2025-06-18/2025-03-26/2024-11-05自动协商) - 认证:
Authorization: Bearer sk-sanyu-xxx - 看目录不需要密钥(
tools/list公开),执行才需要 - 密钥获取:注册后在 https://sanyu.wentangkeji.com 的「API 密钥」页生成(注册送试用积分)
ModelScope(魔搭)/ 通用 MCP 配置
⚠️ 这一段必须排在其他配置之前:魔搭只取第一个
mcpServers块做部署检测, 且type只认streamable_http(下划线)。写成http会导致"基础信息解析失败"。
{
"mcpServers": {
"sanyu-research": {
"type": "streamable_http",
"url": "https://sanyu.wentangkeji.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-sanyu-REPLACE-WITH-YOUR-OWN-KEY"
}
}
}
}
Cursor / Cline / 任何 mcp.json
{
"mcpServers": {
"sanyu": {
"type": "http",
"url": "https://sanyu.wentangkeji.com/api/mcp",
"headers": { "Authorization": "Bearer sk-sanyu-你的密钥" }
}
}
}
Claude Code
claude mcp add --transport http sanyu https://sanyu.wentangkeji.com/api/mcp \
--header "Authorization: Bearer sk-sanyu-你的密钥"
只支持本地进程的旧客户端
{
"mcpServers": {
"sanyu": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://sanyu.wentangkeji.com/api/mcp",
"--header", "Authorization: Bearer sk-sanyu-你的密钥"]
}
}
}
Dify / Coze(导入 OpenAPI)
https://sanyu.wentangkeji.com/api/open/v1/openapi.json
认证方式选 Bearer,填 sk-sanyu-xxx。
若觉得 145 个工具太多、Agent 选不准,可改用精选 24 个的 schema 导入。
动作分类(145 = 106 确定性 + 39 生成)|MCP 工具 147 = 145 + 2 元工具
| 类别 | 代表动作 |
|---|---|
| 统计分析 | ROC/AUC、DeLong、校准曲线、生存分析(KM/Cox)、ANOVA 及两两比较、置换检验、Egger 检验、IPTW、SMD 均衡 |
| 数据采集 | Table 1(基线表)、亚组 Table 1、数据快速画像 |
| 研究设计 | 样本量计算、随机化分组(固定种子可复现)、倾向性评分匹配 PSM |
| 生信解读 | 差异表达、GO/KEGG 富集、PPI 网络、单细胞分析、代谢组 PCA/PLS-DA/火山图/热图 |
| 湿实验与序列 | 引物设计、Tm 计算、序列翻译/ORF/酶切位点、qPCR 2^-ΔΔCt、蛋白理化性质 |
| 建模预测 | 列线图、SHAP、PSI、NCA 药代、PK/PD 模拟 |
| 图表与规范 | 森林图、CONSORT 流程图、PRISMA 流程图、报告规范清单核对 |
| 文献 | PubMed 检索、站内全文检索、引文格式化 |
| 生成类(不可复现) | 选题、研究方案、论文初稿、单章写作、润色、六智能体审稿、投稿信、汇报 PPT |
完整清单:GET /api/open/v1/actions 或 MCP 的 tools/list。
计费
| 类型 | 每次 |
|---|---|
| 统计 / 序列 / 病理 / 图表 | 1 分 |
| 文献检索 | 2 分 |
| 生信管线 | 5 分 |
| 免费档 | 每 key 每日 100 分封顶,注册送试用积分 |
| 频率 | 60 次/分钟/每把 key(不按 IP,防伪造) |
失败不扣分:引擎不可用、参数缺失、动作未开放,一律 0 扣分。
写权限边界
默认只算不落:传 project_id / user_id 会被主动剥离,并在 warnings 里说明。
受试者数据类动作(CRF 建表、数据导入、脱敏、建模训练)不在白名单——目录里没有这些工具。
唯一例外:paper_draft_one_click 会在后台建一个写作任务并落库,它的
annotations.readOnlyHint = false。调用前请先跟用户确认;表里其它生成类都不写库。
生成类怎么取结果(异步)
39 个生成类动作是异步的:返回 success: true + job_id + engine_status: queued,
这不是结果,是已受理。要用 sanyu_job_status 轮询:
{ "name": "sanyu_job_status", "arguments": { "job_id": "job_xxxxxxxx" } }
每 3 秒一次,最多等 300 秒。status=succeeded 取 result;failed 读 error(失败不扣分)。
拿到 succeeded 之前不要向用户报告任何结果。
响应示例
{
"success": true,
"action": "act_roc",
"engine_status": "real",
"data_source": "local_computation",
"result": { "auc": 0.86, "ci": [0.74, 0.95], "n": 120 },
"cost": 1,
"audit_id": 88123,
"credits_balance": 499,
"warnings": []
}
服务卡
https://sanyu.wentangkeji.com/api/mcp/card
许可
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.