Token导航 LogoToken导航TokenDH.com
Smithy MCP logo
AI代理未说明官方级别未说明来源级核验

Smithy MCP

MCP Server

一个轻量级的开源库,为Smithy API定义提供MCP工具注解,使其可被MCP代理、AI模型或其他自动化系统发现和使用。

工具数

7

提示词数

0

GitHub Stars

0

资源数

0
元数据管理自动化AI代理

安装说明

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

作者 / 组织

innFactory

提供方

innFactory

最后核验

2026/5/17 20:21

快速接入

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

详细介绍

Smithy MCP 扩展

![Smithy](https://smithy.io/2.0/)

@innFactory/smithy-mcp 是一个轻量级、开源的库,提供了一套 “Smithy”可以翻译为“铁匠铺”或“修理厂”,具体取决于上下文和语境。在一般情况下,如果没有特别的行业或专业背景,翻译为“铁匠铺”更为常见和易懂 特性用于为API操作添加注解 模型上下文协议(MCP)

它允许您无缝地为Smithy API定义添加元数据,使其能够被MCP代理、AI模型或其他自动化系统作为“工具”发现并使用。

核心设计理念是 约定优于配置从单一特性开始,只有在需要覆盖合理默认值时才添加更多细节。

特点/功能

  • 最小化开销将一个操作作为MCP工具以单一方式暴露出来 @mcpTool 特征。
  • 约定优于配置该系统会自动从您的现有模型中推断出名称和描述。只有当您想要覆盖这些默认值时,才需要添加注释。
  • 丰富的元数据可选择添加详细描述、类别、版本、参数示例以及完整的端到端使用示例。
  • 清晰命名所有特征都以……为前缀 mcp 为了清晰起见,并避免冲突。
  • 类型安全通过在Smithy IDL中定义元数据,您可以获得工具定义的编译时验证。

安装

要在你的Smithy项目中使用这些特性,你需要将这个仓库作为依赖项添加进来。在你的 smithy-build.json,在(某处)添加以下内容至 maven 依赖项部分。

*(注:一旦该包发布到Maven仓库,即可获取确切坐标。目前,您可以直接使用供应商提供的模型文件。)*

将一个Git仓库作为依赖项导入的典型设置如下所示(示例使用...) smithy-cli):

{
  "version": "1.0.0",
  "sources": ["model"],
  "maven": {
    "dependencies": [
      // Dependency will be added here once published
    ]
  }
}

目前,您可以添加 model/ 将此仓库中的目录链接到您项目的 Smithy 源代码路径。

如何使用

1. 导入特性(或:导入特性类)

在你的 .smithy 文件,从(某个地方)导入你想要使用的特性 de.innfactory.mcp 命名空间。

$version: "2.0"

namespace com.example.api

use de.innfactory.mcp#mcpTool
use de.innfactory.mcp#mcpName
use de.innfactory.mcp#mcpDescription
use de.innfactory.mcp#mcpCategories
use de.innfactory.mcp#mcpParameter
use de.innfactory.mcp#mcpExamples

2. 为您的操作添加注释

最小示例(基于约定)

要将一个操作作为工具暴露出来,只需添加 @mcpTool 特征。该工具的名称将源自操作名称(GetUser),其描述将取自标准 @documentation 特征。

/// This documentation will be used as the default tool description.
@mcpTool
@http(method: "GET", uri: "/users/{id}")
operation GetUser { /* ... */ }

完整示例(基于配置)

为了获得更多的控制权,你可以使用其他的 mcp* 特性以提供明确的元数据。

/// This is the fallback documentation.
@mcpTool
@mcpName("GetUserProfile") // Override the default name "GetUser"
@mcpDescription("Retrieves the full public profile for a user by their ID.")
@mcpCategories(["User Management", "Data Retrieval"])
@mcpVersion("1.1.0")
@mcpExamples([
  {
    title: "Retrieve a standard user",
    input: {
      userId: "usr_12345"
    },
    output: {
      body: {
        id: "usr_12345",
        name: "Jane Doe",
        email: "jane.doe@example.com"
      }
    }
  }
])
@http(method: "GET", uri: "/users/{userId}")
operation GetUser {
  input := {
    @required
    @httpLabel
    /// Default documentation for the parameter.
    @mcpParameter(
      example: "usr_12345" // Provide a concrete example value
    )
    userId: String
  },
  output := { /* ... */ }
}

可用特性

特征目标描述
@mcpTooloperation(必填) 标记特性,将操作作为MCP工具暴露出来。
@mcpNameoperation覆盖默认工具名称。
@mcpDescriptionoperation覆盖默认描述(该描述是从 @documentation)。
@mcpCategoriesoperation一个字符串列表,用于对工具进行分类。
@mcpVersionoperation该工具的语义版本字符串。
@mcpParametermember提供一个 example 输入参数的值。描述是从(其他信息或上下文中)推断得出的 @documentation
@mcpExamplesoperation一串端到端的列表 (title, input, output) 该工具的示例。

做出贡献

欢迎贡献!请随时提出问题或提交拉取请求。

许可证

这个项目遵循MIT许可证进行授权。详见 许可证 文件中详述。

目录标签

目录标签

元数据管理自动化AI代理Smithy本地部署API注解自动化工具Smithy扩展MCP协议

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP