mcpField
A
allfeatures

allfeatures

本地服务
github.com/CloudCorpRecords其他01 天前更新

关于 allfeatures

allfeatures 是面向 MCP 客户端和服务端开发者的协议功能展示项目,涵盖多种内容格式、资源、长时间调用及依赖客户端能力的功能;客户端不支持时会明确报错。

主要功能

  1. 01回显与加法工具
  2. 02长时间运行操作演示
  3. 03文本、图像与结构化结果
  4. 04资源链接与嵌入式资源
  5. 05采样、根目录与用户询问

适用场景

  1. 01测试客户端对 MCP 功能的支持
  2. 02检查能力缺失时的错误
  3. 03体验图像和资源响应

MCP 相关

通过 stdio MCP 服务暴露演示工具,其中采样、根目录和用户询问功能需要连接的客户端提供相应能力。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-allfeatures": {
"command": "npx",
"args": [
"-y",
"@reneturcios/allfeatures"
]
}
}
}
启动命令npx -y @reneturcios/allfeatures

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

安装包
npm@reneturcios/allfeatures0.1.0
ocighcr.io/cloudcorprecords/allfeatures:0.1.0

工具

还没有获取到工具列表

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

详细介绍

allfeatures

allfeatures 是 MCP 协议本身的展示项目。它不专注于把一项工作做到极致,而是演示客户端和服务端需要协商一致的各个环节:纯文本结果、图像、注释、嵌入式资源、资源链接、结构化内容、长时间运行的调用,以及只有连接的客户端提供协助才能使用的三项功能——sampling、roots 和 elicitation。如果你正在开发客户端,可以让它连接到 allfeatures,观察各项功能逐一生效(如果客户端不支持某项功能,也会明确报错,不会掩饰失败)。

安装

npx @reneturcios/allfeatures echo hello

或者运行容器镜像:

docker run -i ghcr.io/cloudcorprecords/allfeatures

容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。

CLI

只有两项不依赖客户端也有意义的工具会作为命令提供:

allfeatures echo hello there   # hello there
allfeatures add 2 3            # 5
allfeatures add -1.5 0.5       # -1
allfeatures --version          # 0.1.0

退出代码:成功时为 0,无法处理参数时为 1(例如,add 收到非数字输入),用法错误时为 2。

MCP 服务

一个二进制文件同时提供两种用途。mcp 子命令会启动一个 stdio MCP 服务:

npx -y @reneturcios/allfeatures mcp

MCP 客户端配置:

{
  "mcpServers": {
    "allfeatures": {
      "command": "npx",
      "args": ["-y", "@reneturcios/allfeatures", "mcp"]
    }
  }
}
工具
工具输入返回内容
echomessage(字符串,必填)原样返回该消息,格式为文本。
adda、b(数字,必填)以文本形式返回两数之和。
longRunningOperationduration(数字,可选,单位为秒,默认值为 10)、steps(数字,可选,默认值为 5)将等待时长分摊到各个步骤中,等待完成后返回一条完成说明。
printEnv—以 JSON 文本形式返回服务端进程环境。
sampleLLMprompt(字符串,必填)、maxTokens(数字,可选)从客户端的模型采样得到的补全结果(见下文)。
getTinyImage—一张 1x1 透明 PNG 图像内容,以及一条简短文本说明。
annotatedMessagemessageType("error" / "success" / "debug",必填)、includeImage(布尔值,可选)一条文本消息,其注释(受众和优先级)取决于类型;当 includeImage 为 true 时附带微型图像。错误消息面向用户和助手,优先级为 1;成功消息面向用户,优先级为 0.7;调试说明面向助手,优先级为 0.3。
getResourceReferenceresourceId(数字,必填)一个 URI 为 demo://resource/<resourceId> 的嵌入式文本资源。
getResourceLinkscount(数字,必填,1–10)指定数量的 resource_link 项。超出 1–10 的范围会报错。
structuredContentlocation(字符串,必填)返回该地点的固定示例天气(72°F、晴朗、湿度 45%),以 structuredContent 形式提供,并附带相应的 JSON 文本。
listRoots—以 JSON 文本形式返回客户端的 roots(见下文)。
startElicitation—返回询问用户简短回复后的结果(见下文)。
zip—一个嵌入式 blob 资源(application/zip),内含真实、精简的 ZIP 归档,其中有一个以存储方式保存的文件 hello.txt。该归档逐字节组装而成,包括 CRC32、本地文件头和中央目录,全程不使用归档库。
客户端能力工具

sampleLLM、listRoots 和 startElicitation 不能仅由服务端响应:它们会请求连接的客户端执行操作(对模型进行采样、列出 roots、向用户显示提示)。只有客户端在初始化期间声明了相应能力时,allfeatures 才会发送这些请求。如果客户端未声明,工具会返回明确说明这一点的错误结果——服务端绝不会编造看似合理的答案。

开发

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network
npm run dev     # run the CLI from source via tsx

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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