mcpField
S
Scholar Feed

Scholar Feed

远程服务
scholarfeed.org开发工具134 周前更新

关于 Scholar Feed

Scholar Feed 是面向研究者和 LLM 工程师的 MCP 服务,用于检索计算机科学、AI 和机器学习论文。它结合论文排序、引用图探索、全文获取、作者查询和 BibTeX 导出。

主要功能

  1. 01语义与关键词论文搜索
  2. 02按相关性、引用和趋势排序
  3. 03遍历引用图
  4. 04按章节获取论文全文
  5. 05作者搜索与合著图查询
  6. 06论文详情与 BibTeX 导出

适用场景

  1. 01查找某研究领域的近期论文
  2. 02追踪论文的参考文献与后续引用
  3. 03按章节阅读论文全文
  4. 04将相似论文导出为 BibTeX

MCP 相关

它通过 stdio 向 MCP 客户端提供论文搜索、引用、全文、作者和研究资料库工具。核心搜索与检索可匿名使用;资料库功能需要 API 密钥。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.scholarfeed.org/mcp?src=mcp-registry
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npmscholar-feed-mcp3.20.0

工具

26
参数类型必填说明
qstring否搜索查询关键词。必填,除非 (a) 设置了 anchor_paper_id 或 scope_to_citations_of(锚点模式会忽略 q,并返回与锚点相似的论文),或 (b) sort 为 'trending' / 'recent' / 'impactful' 之一——这是“浏览前沿”信息流,最多返回前 200 条结果(offset 超过 200 时翻页会返回 422;请改用 q= 或筛选条件缩小范围)。任何其他不带 q 的调用都会返回 422,包括仅带筛选条件(category/days/...)的不带 q 调用,以及不带 q 且 sort='community' 的调用。筛选条件本身不能代替 q——请与浏览排序结合使用(例如 category='cs.AI' + sort='recent'),或传入 q。要查询“AI 现在有什么热门内容”,可单独使用 sort='trending',也可使用宽泛的 q 并搭配 sort='trending'。
sortenum否结果排序——相关性↔影响力调节项,以及基于时间和采用情况的排序方式。'relevance'(默认)= 主题匹配度最佳。'balanced' = 相关且引用量高。'impactful' = 与查询相关的论文中引用量最高(已证实有影响力)的论文——用于查找“主题 X 的重要/奠基论文”。'trending' = 上升趋势/预测影响力(impact_pct,最近约 90 天)——用于查找“X 领域的热门/新内容”,不用于已确立研究。'recent' = 最新优先。'community' = GitHub 采用度(stars + star-velocity)——展示实践者实际运行/构建的论文,与引用量无关。覆盖范围注意事项(类似 impact_min 的约 90 天缺口):未获取星标的仓库存储为 0 而非 NULL,且覆盖严重偏向近期发表的论文,因此大多数较早且有仓库的论文当前排名为 0 星并下沉——'community' 反映的是已测量的采用情况,而非整个语料库的实际采用情况。已证实影响力('impactful'/'balanced')按真实引用量排序;'trending' 是模型预测;'community' 是时间窗口内的真实工程热度。可搭配 get_foundational_lineage 查询主题的经典根源。relevance | balanced | impactful | trending | recent | community
anchor_paper_idstring否返回与此 arXiv 论文 ID 相似的论文(替代已移除的 find_similar 工具)。设置后会忽略 q,结果包含 similarity_score。示例:'2407.15831'。
scope_to_citations_ofstring否将搜索范围限制在此论文的引用图中,并按与 q 的相关性排序(替代已移除的 find_citations_about 工具)。传入要在其引用范围内搜索的论文 arXiv ID。
categorystring否按 arXiv 类别筛选,例如 'cs.AI'、'cs.LG'
novelty_minnumber否最低新颖性评分(0-1)。新颖论文可使用 0.5+。
impact_mininteger否最低 impact_pct(0-100),例如 80 = 预测影响力排名前 20%。这是上升趋势研究筛选条件:impact_pct 仅针对最近约 90 天计算,因此 impact_min 会将结果限制为近期且预计表现出色的论文,并排除所有更早的论文。用于查找“X 领域的上升趋势”。不要用它来查找某个主题中有影响力/奠基性的论文——它会排除已确立的研究;请改用 sort='impactful'。
daysinteger否限制为最近 N 天内发表的论文
has_codeboolean否筛选出带有链接代码发布的论文(has_code=true)。可查找可运行/可复现的研究;可搭配 min_stars/sort='community',以查找实践者实际采用的论文。
min_citationsinteger否最低实际引用次数。与 impact_min(约 90 天的预测百分位)不同,此项按已验证引用筛选,并保留已确立/经典论文。
min_starsinteger否论文关联仓库的 GitHub 最低星标数。可作为工程采用情况的指标,突出从业者实际运行或构建的工作。与 sort='community' 搭配可按此排序。覆盖范围注意事项:从未抓取过的仓库会存储为 0,而非 NULL,因此此筛选条件无法区分“无人采用”和“从未测量”。筛选条件按“已知星标数 >= N”应用——从未抓取星标数的论文会被排除,而不是视为 0 星,因此结果准确但不完整:较早发表且确实热门的论文,也可能仅因无人测量而缺失。覆盖范围偏向近期发表的论文,数据正在补录中。可用于筛选近期工作;对于较成熟的论文,请改用 min_citations。
github_url_existsboolean否按论文是否包含关联的 GitHub URL 筛选(true = 仅包含有仓库的论文)。比 has_code 更严格(has_code 统计任何代码链接)。
published_afterstring否仅包含在此日期或之后发表的论文,格式为 'YYYY-MM-DD'。与 published_before 搭配可限定任意日期范围(days 仅提供滚动的 N 天回溯范围)。
published_beforestring否仅包含在此日期或之前发表的论文,格式为 'YYYY-MM-DD'。与 published_after 搭配可指定明确的日期范围。
method_categorystring否按方法类别筛选,例如 'reinforcement learning'、'transformer'
method_namestring否筛选引入或使用特定命名方法的论文,例如 'LoRA'、'YOLO'、'DPO'。对提取的 method_name 字段执行不区分大小写的子串匹配。
taskstring否按任务筛选,例如 'image classification'、'question answering'(部分匹配)
datasetstring否筛选在特定数据集上进行评估的论文,例如 'MMLU'、'ImageNet'
contribution_typeenum否按论文的贡献类型筛选model | method | benchmark | dataset | survey | theoretical | empirical_study | system
task_categoryenum否按宽泛的研究领域筛选NLP | Computer Vision | RL | Audio/Speech | Graphs | Multimodal | Systems | Theory | Security | Other
modeenum否搜索模式。'semantic'(默认)使用嵌入相似度,即使没有精确的关键词匹配,也能找到概念相关的论文。'keyword' 使用 Postgres 全文搜索,速度更快,但仅匹配精确词条。keyword | semantic
cursorstring否用于键集分页的上一响应中的 next_cursor
pageinteger否页码
limitinteger否每页结果数(最多 50 条)
fieldsstring否以逗号分隔的返回字段列表(例如 'arxiv_id,title,llm_summary,llm_novelty_score')。若未提供,则返回精简的 12 字段默认结果,除非 verbose=true。
verboseboolean否若为 true,则返回包含 28 个字段的完整论文结构(方法/任务/数据集提取、application_domain、baselines 等)。默认 false 时返回精简的 12 字段集合。提供 `fields` 时此参数会被忽略。
exclude_idsarray否要从结果中排除的 arXiv ID(用于串联调用间的去重)

详细介绍

Scholar Feed

Scholar Feed MCP 服务

CI npm version Node License: MIT smithery badge

为大模型工程和学术研究提供带有排序和引文追踪功能的研究论文搜索,无需离开 Claude Code、Cursor 或任何 MCP 客户端。

大多数论文工具只会返回一个平铺列表。Scholar Feed 会对结果进行排序:按相关性、已验证的引用次数或影响力增长趋势排序,然后沿着 2,200 万多条引用关系,向前或向后追踪任意论文的引用脉络。收录 60 多万篇计算机科学、AI 和 ML 论文,每日更新,每篇论文都附有大模型生成的摘要和新颖性评分。

Scholar Feed 每日索引 arXiv 论文,并根据新近度、引用速度、机构声誉和代码可用性为其排序。

快速开始

npx scholar-feed-mcp@latest init

此交互式向导将:

  1. 可选地询问 API 密钥(也可跳过,匿名访问)
  2. 检测你的 MCP 客户端(Claude Code、Cursor 或 Claude Desktop)
  3. 写入配置并验证连接

无需 API 密钥。 匿名访问每月可调用 200 次,足以满足典型的研究需求。如需更高配额(每个账户每月 500 次)以及个人文库(包括合集、已保存论文和关注项),请前往 scholarfeed.org/settings 免费获取密钥。

试着询问:“搜索近期有关测试时计算扩展的论文”

你可以做什么

技术探索:“本月发表了哪些关于检索增强生成的新颖研究?”

文献综述:“查找与 2401.04088 类似的论文,并导出其 BibTeX”

趋势监测:“本周 cs.CV 领域有哪些热门趋势?总结排名前 3 的趋势。”

作者发现:“哪些研究人员在高效大模型推理方面处于领先地位?”

领域概览:“请提供一份关于稀疏混合专家架构的领域概览报告。”

安装

最快的方式是运行 npx scholar-feed-mcp@latest init,它会自动检测客户端并写入配置。若要手动设置,每个客户端都会启动同一个 stdio 服务(npx -y scholar-feed-mcp@latest);区别仅在于配置文件位置和包装键。

Claude Desktop(一键安装)无需编辑任何配置即可安装:从最新版本下载 .mcpb 包并打开(或将其拖入设置 > 扩展)。安装程序会显示一个可选字段,用于填写 Scholar Feed API 密钥(sf_...):留空即可使用匿名模式(每月 200 次调用),或粘贴从 scholarfeed.org/settings 获取的免费密钥(每月 500 次调用)。

Claude Code只需一行命令:

# Anonymous (200 calls/month)
claude mcp add scholar-feed -- npx -y scholar-feed-mcp@latest

# With an API key (500 calls/month per account)
claude mcp add scholar-feed -e SF_API_KEY=sf_your_key_here -- npx -y scholar-feed-mcp@latest

其他所有客户端都使用以下标准 JSON 代码块:

{
  "mcpServers": {
    "scholar-feed": {
      "command": "npx",
      "args": ["-y", "scholar-feed-mcp@latest"]
    }
  }
}

如需将配额提高到每月 500 次调用,请在服务条目中添加 "env": { "SF_API_KEY": "sf_your_key_here" }。可从 scholarfeed.org/settings 获取免费密钥。

将此代码块放入相应的配置文件:

客户端配置文件备注
Cursor.cursor/mcp.json(项目级)或 ~/.cursor/mcp.json(全局)重启 Cursor。
Claude DesktopmacOS:~/Library/Application Support/Claude/claude_desktop_config.json;Windows:%APPDATA%\Claude\claude_desktop_config.json进入“设置” → “开发者” → “编辑配置”,然后重启。
Windsurf~/.codeium/windsurf/mcp_config.json进入 Cascade → MCP 图标 → Configure,然后刷新。
Cline / Roo Codecline_mcp_settings.json点击侧边栏中的 MCP Servers 图标 → Configure。Cline 和 Roo Code 使用相同格式。
Gemini CLI~/.gemini/settings.json(或项目中的 .gemini/settings.json)
LM Studio~/.lmstudio/mcp.json进入 Program 标签页 → Install → Edit mcp.json。采用 Cursor 的格式。
JetBrains(PyCharm / IntelliJ)AI Assistant → MCP → Add → As JSON需要 AI Assistant 2025.1 或更高版本。

有些客户端需要使用不同的包装键或文件格式:

OpenAI Codex、VS Code (GitHub Copilot)、Zed、Continue 和项目级配置

OpenAI Codex(~/.codex/config.toml,或在设置了 $CODEX_HOME 时使用 $CODEX_HOME/config.toml)使用 TOML 而非 JSON,因此上述代码块无法使用。Codex CLI 和 IDE 扩展共用同一个文件。

[mcp_servers.scholar-feed]
command = "npx"
args = ["-y", "scholar-feed-mcp@latest"]
env = { SF_API_KEY = "sf_your_key_here" }

删除 env 行即可在不使用密钥的情况下运行,每月可调用 200 次。在 Windows 上,如果 Codex 无法启动服务,请使用 command = "cmd" 和 args = ["/c", "npx", "-y", "scholar-feed-mcp@latest"]。

VS Code:GitHub Copilot(.vscode/mcp.json)使用 servers 键和显式的 type,并且需要启用 Copilot Agent 模式。你也可以从命令面板运行 MCP: Add Server。

{
  "servers": {
    "scholar-feed": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "scholar-feed-mcp@latest"]
    }
  }
}

Zed(settings.json)使用 context_servers 键,并且必须包含 "source": "custom" 行(若缺少此行,Zed 会静默跳过该条目)。

{
  "context_servers": {
    "scholar-feed": {
      "source": "custom",
      "command": "npx",
      "args": ["-y", "scholar-feed-mcp@latest"]
    }
  }
}

Continue使用 YAML,在 ~/.continue/config.yaml(全局)或 .continue/config.yaml(工作区)中以列表形式配置 mcpServers。

mcpServers:
  - name: scholar-feed
    type: stdio
    command: npx
    args:
      - "-y"
      - scholar-feed-mcp@latest

项目级配置(.mcp.json),用于在仓库中共享服务:

{
  "mcpServers": {
    "scholar-feed": {
      "command": "npx",
      "args": ["-y", "scholar-feed-mcp@latest"],
      "env": { "SF_API_KEY": "${SF_API_KEY}" }
    }
  }
}

**Windows:**对于上述任何 JSON 配置,请使用 "command": "cmd" 和 "args": ["/c", "npx", "-y", "scholar-feed-mcp@latest"]。

Scholar Feed 是标准的 stdio MCP 服务,因此其他任何兼容 MCP 的客户端也可以使用标准代码块。

可用工具(27)

核心搜索与发现
工具描述关键参数
search_papers支持筛选条件的语义搜索和关键词搜索。还可发现相似论文、搜索指定引用范围内的论文,以及查找热门论文。q、category、novelty_min、days、sort、anchor_paper_id、scope_to_citations_of、mode、method_category、task、dataset、contribution_type、task_category、cursor、limit
get_paper根据 arXiv ID 获取论文的完整详情。还支持批量查询和导出 BibTeX。arxiv_ids、format、fields、verbose
get_citations引用图谱(出向参考文献或入向引用)arxiv_id、direction、limit、fields
fetch_fulltext按章节阅读论文文本(摘要、引言、相关工作、方法、结果、结论或 all)。传入 arxiv_ids 可在一次调用中阅读最多 8 篇论文;无法提取的论文会作为失败条目返回,而不会导致调用失败。arxiv_id、arxiv_ids、sections
作者
工具描述关键参数
find_author根据主题或姓名查询查找研究人员,或根据 ID 获取个人资料。q、id、field、limit
co_author_graph作者的合著关系网络author_ids、window_years
嵌入
工具描述关键参数
embed_text获取文本的 768 维 Gemini 嵌入(用于 HyDE 和自定义相似度计算)。仅限 Pro,因此匿名用户和免费用户会收到 403 pro_required。text、task_type
研究
工具描述关键参数
get_field_orientation研究领域的低成本检索概览:热门论文、子领域和开放问题。不占用 Pro 配额。topic、limit
get_foundational_lineage通过引用图谱获取某篇论文所属细分领域的基础性工作(先达成共识,再向上追溯):niche_roots → field_level → discipline,并提供 cited_by_in_niche 证据。可发现语义搜索容易遗漏的典范性锚点。不占用 Pro 配额。anchor_paper_id、scope、generality_ceiling、limit
check_drift“我使用的方法是否已被取代?被什么方法取代了?”检查约 10 类大模型构建者问题族中的批判性评估记录和基准主导关系边。不占用 Pro 配额。family、method、limit
文库、收藏集、监控项与差距分析(需要 SF_API_KEY)

这些工具会修改或读取已通过身份验证的用户账号。上面的核心读取/搜索工具可匿名使用;这些工具需要密钥。

工具描述关键参数
save_paper将论文收藏到你的文库中(幂等;会影响个性化推荐)。arxiv_id
unsave_paper从你的文库中移除论文(幂等)。arxiv_id
like_paper为「推荐更多类似内容」提供校准信号(仅插入)。arxiv_id
list_library列出你收藏的论文,按时间从新到旧排序(包含你的笔记)。limit、page
annotate_paper记录你对论文的评判——它为何重要、何时适用、为何将其排除。会执行插入或更新;结果可由 list_library 返回,因此后续会话会读取该记录,而不是重新推导。arxiv_id、note_text、action
list_collections列出收藏集及其论文数量。(无)
create_collection创建命名收藏集(若已存在则获取现有收藏集;不会因重复而报错)。name
add_to_collection按名称或 ID 将论文添加到收藏集(也会自动收藏论文)。arxiv_id、collection_name、collection_id
remove_from_collection从收藏集中移除论文(仍会保留在文库中)。arxiv_id、collection_name、collection_id
create_watch按日评估的持续搜索;按名称获取或创建。可用结构化的 criteria 筛选条件(推荐)或单个种子选择器来定义。name、novelty_min、criteria、recency_days、q、collection_name、collection_id、anchor_paper_id、scope_to_citations_of、author_id、category
list_watches列出监控项及其摘要、last_evaluated_at 和 pending_hits。(无)
check_watches获取上次摘要以来的新匹配项(只读、幂等)。watch_name、watch_id、limit
update_watch就地编辑监控项:重命名、更改 novelty_min 或调整其结构化 criteria(会清除待处理匹配项)。按名称或 ID 指定。name、watch_id、new_name、novelty_min、criteria、recency_days
preview_watch对近期论文试运行结构化的 criteria 筛选条件,无需创建监控项;返回 match_count 和 sample,供保存前调整。只读。criteria、recency_days
delete_watch按名称或 ID 删除监控项(幂等)。name、watch_id
find_gaps针对某个收藏集或主题回答「我遗漏了什么?」:查找你尚未收藏的基础性与前沿研究(只读,Pro)。collection_name、collection_id、topic、scope、limit
ask_library「根据我的收藏内容作答」:基于你的文库或某个收藏集生成带引用的综合回答,且仅以你收藏的论文为依据(只读)。与 find_gaps 相反。每月免费 20 次,之后 Pro 每天 200 次。question、collection_name、collection_id、limit

新颖度评分

每篇论文都有一个介于 0.0 到 1.0 之间的 llm_novelty_score:

范围含义示例
0.7+范式转变或广泛的 SOTA改变该领域的新架构
0.5-0.7结果显著的新方法带来明确提升的新训练技术
0.3-0.5渐进式改进将已知方法应用于新领域
<0.3综述、数据集或小幅扩展文献综述、基准发布

在 search_papers 中使用 novelty_min: 0.5,筛选出真正新颖的研究。

速率限制

端点限制
search_papers30/min
get_paper30/min
get_citations30/min
fetch_fulltext(单篇论文)10/min
fetch_fulltext(批量,2-8 篇论文)6/min
find_author20/min
co_author_graph20/min
embed_text30/min
get_field_orientation20/min
get_foundational_lineage20/min
find_gaps20/min
ask_library10/min

响应中包含 X-RateLimit-Limit、X-RateLimit-Remaining 和 X-RateLimit-Reset 标头。

每月调用量配额(与上述每分钟限制分开,按账号统计所有密钥的调用量):匿名用户(按 IP 计)为 200 次/月,使用免费密钥为 500 次/月,Pro 为 10,000 次/月。此外还有较低的每日上限(100 / 200 / 2,000),用于限制突发调用,避免失控的循环在一小时内耗尽整月配额;达到此上限会返回带有 scope: "burst" 的 429 响应,且不会消耗月度配额。批量调用前,可通过 GET /v1/health(monthly_limit / usage_this_month)查看本月剩余配额。

AI 综合工具有各自的限制:ask_library 免费版每月 20 次,Pro 版之后为每天 200 次;find_gaps 仅限 Pro(否则返回 403 pro_required)。embed_text 需要任意等级的账号——匿名调用者会收到 403 account_required。

响应示例

使用 q: "attention mechanism" 调用 search_papers 会返回:

{
  "papers": [
    {
      "arxiv_id": "2401.04088",
      "title": "Attention Is All You Need (But Not All You Get)",
      "authors": ["A. Researcher", "B. Scientist"],
      "year": 2024,
      "categories": ["cs.LG", "cs.AI"],
      "primary_category": "cs.LG",
      "arxiv_url": "https://arxiv.org/abs/2401.04088",
      "has_code": true,
      "github_url": "https://github.com/example/repo",
      "citation_count": 42,
      "rank_score": 0.73,
      "llm_summary": "Proposes a sparse attention variant that reduces compute by 60% while matching dense attention accuracy on 5 benchmarks.",
      "llm_novelty_score": 0.55
    }
  ],
  "total": 1847,
  "page": 1,
  "limit": 20,
  "next_cursor": "eyJzIjogMC43MywgImlkIjogIjI0MDEuMDQwODgifQ=="
}

将 next_cursor 传回以获取下一页(基于键集的分页方式,对于大型结果集比页码更稳定)。

环境变量

变量必需默认值说明
SF_API_KEY否(无)你的 Scholar Feed API 密钥(以 sf_ 开头)。不提供时,将以匿名模式运行(每月 200 次调用)。
SF_API_BASE_URL否生产环境 URL覆盖 API 基础 URL

开发

npm install
npm run build      # Build to build/
npm run dev        # Watch mode
npm run typecheck  # Type check without emitting
npm test           # Run tests

贡献

请参阅 CONTRIBUTING.md 了解指南。

故障排查

“Authentication failed: your SF_API_KEY is invalid” 密钥可能已被撤销。请前往 scholarfeed.org/settings 生成新密钥。也可以移除密钥,以匿名模式使用。

“Rate limit exceeded” 或 “Anonymous daily limit exceeded” 匿名模式每月允许调用 200 次。前往 scholarfeed.org/settings 获取免费 API 密钥,即可获得每个账号每月 500 次调用,以及你的文献库。

服务器显示为“failed”且没有错误信息——尤其是在更新后立即发生 首次启动(以及每次发布新版本后的首次启动)会让 npx 下载软件包。已发布的可执行文件是一个独立文件,无需解析依赖树,因此下载很快;但网络较慢时,仍可能超出客户端的启动超时时间,导致服务器显示为“failed”且没有详细信息。解决方法:(1)在终端中运行一次以预热缓存——npx -y scholar-feed-mcp@latest --version——然后重启客户端;(2)如果客户端支持,提高 MCP 启动超时时间(Claude Code:MCP_TIMEOUT=60000)。如需最快且支持离线的启动方式,可全局安装一次,并在配置中改为指向该安装,而不是使用 npx:

npm install -g scholar-feed-mcp
# then in your MCP config:  "command": "scholar-feed-mcp", "args": []

工具调用超时或静默失败 确保已安装 Node.js 18+(node --version)。较旧版本没有原生 fetch API。

npx 缓存过期 上方的配置片段固定使用 scholar-feed-mcp@latest,每次启动都会重新解析最新版本。如果你之前使用未固定版本的 scholar-feed-mcp,现在仍停留在旧版本:请运行 npx --yes scholar-feed-mcp@latest。

Windows:“command not found” 在 MCP 配置中使用 "command": "cmd" 和 "args": ["/c", "npx", "-y", "scholar-feed-mcp@latest"]。

关于 Scholar Feed

Scholar Feed 是一个面向计算机科学和 AI/ML 论文的研究发现引擎,创立于 2025 年。它收录了来自 arXiv 的 600,000 多篇论文,并根据新颖性、引用增长速度和相关性进行排名,同时提供大模型生成的摘要、引用图谱、作者资料和全文提取功能。它以网站、公共 REST API 和 Model Context Protocol(MCP)服务的形式提供,AI Agent 可直接调用该服务。此软件包(scholar-feed-mcp)是开源 MCP 服务。

隐私

请参阅我们的隐私政策。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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