mcpField
M
mcp-api

mcp-api

本地服务
github.com/FusionAuth安全1今天更新

关于 mcp-api

mcp-api 是一个预览版 MCP 服务,将 FusionAuth API 操作提供给 MCP 客户端。它面向开发和测试,并可通过限制可用操作及 API 密钥权限来控制访问。

主要功能

  1. 01访问 FusionAuth API 端点
  2. 02按操作类型限制工具
  3. 03使用权限受限的 API 密钥

适用场景

  1. 01查询测试实例中的应用和用户
  2. 02将 API 访问限制为只读操作

MCP 相关

它将 FusionAuth API 操作作为工具提供给配置好的 MCP 客户端。此预览版不适用于生产环境。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"io-fusionauth-mcp-api": {
"command": "npx",
"args": [
"-y",
"@fusionauth/mcp-api"
],
"env": {
"API_KEY_APIKEYAUTH": "<API_KEY_APIKEYAUTH>",
"API_BASE_URL": "<API_BASE_URL>",
"USE_TOOLS": "<USE_TOOLS>"
}
}
}
}
启动命令npx -y @fusionauth/mcp-api
需要配置的环境变量
API_KEY_APIKEYAUTH密钥Your API key for FusionAuth instance
API_BASE_URLThe URL for your FusionAuth instance
USE_TOOLSPrefixes of APIs to create MCP tools for, if not set defaults to all available tools

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

安装包
npm@fusionauth/mcp-api0.1.14

工具

310

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

预览版 FusionAuth API MCP 服务(fusionauth-mcp-api)

npm version License: Apache GitHub repository

FusionAuth API MCP 服务的预览版。 使用优秀的 github.com/harsha-iiiv/openapi-mcp-generator 构建。

⚠️ 不可用于生产环境!

使用此 MCP 服务需要向 MCP 客户端提供 FusionAuth API 密钥。请仅用于开发和测试实例。FusionAuth 不对敏感信息可能泄露承担责任。

前提条件

  • 正在运行的 FusionAuth 实例
  • Node.js

配置

首先,在 FusionAuth 实例中创建一个权限受限的 API 密钥。请参阅有关创建 API 密钥和为 API 密钥配置正确权限的文档。

接下来,配置 MCP 客户端以使用 FusionAuth API MCP 服务。

例如,要添加到 Claude Desktop,请编辑 ~/Library/Application Support/Claude/claude_desktop_config.json,并加入下面的 fusionauth-mcp-api 键。

如果之前没有安装过 MCP 服务,配置文件应如下所示:

{
  "mcpServers": {
      "fusionauth-mcp-api": {
      "command": "npx",
      "args": [
        "@fusionauth/mcp-api"
      ],
      "env": {
        "API_KEY_APIKEYAUTH": "<your fusionauth api key>",
        "API_BASE_URL": "http://localhost:9011",
        "USE_TOOLS": "retrieve,search"
      }
    }
  }
}

上面的 USE_TOOLS 环境变量实际上会将可用工具限制为只读操作。你可以省略此变量以允许完全访问,但你需要使用能够处理约 200k 个 token 的模型。

请查阅 MCP 客户端的文档,了解如何将 MCP 服务添加到客户端。

提示词示例

  • “你可以访问哪些工具?”应显示所有 FusionAuth API 工具
  • “我的 FusionAuth 应用有多少个?”
  • “我的 FusionAuth 实例中有多少个用户?”
  • “添加一个邮箱地址为 [email protected]、密码为 'password' 的用户”(需要限制较少的工具)

限制工具

默认的 MCP 服务为 FusionAuth 的每个 API 端点都提供一个工具,超过 300 个! 但是,这些工具、描述、请求和响应合计接近 200k 个 token,可能会超出许多 MCP 客户端的上下文窗口。

你可以通过设置上面所示的 USE_TOOLS 环境变量,限制此 MCP 服务提供哪些工具。

每个工具都按其前缀定义。默认前缀包括:

  • create
  • delete
  • patch
  • update
  • retrieve
  • search

此外,还有一个 other 工具类别,其中包含所有使用其他前缀的工具。all 工具类别包含所有工具,且为默认值。

例如,如果你不需要使用任何 delete 或 patch 方法,下面的设置可以将工具列表缩减 20%。

USE_TOOLS="create,update,retrieve,search,other"

如果只想允许只读操作,请使用以下配置:

USE_TOOLS="retrieve,search"

这也会将工具列表缩减 66%。

保护您的 MCP 服务

有三种不同的方法可以保护您的 MCP 服务。您应结合使用这些方法,在满足功能需求的同时,确保能够安全访问您的 FusionAuth 实例。按照粒度从粗到细排列如下:

  • 指向正确的实例。此工具目前处于预览阶段,我们建议您仅将其指向本地开发实例。
  • 启用正确类型的工具。除了减少上下文窗口用量,限制大模型可以发起的请求类型也能提升安全性。例如,如果您不启用 delete 工具集,就不必担心大模型为了“帮忙”而删除 FusionAuth 配置。
  • 限制 API 密钥的权限。这比选择工具提供了更精细的控制。MCP 服务使用 API 密钥与 FusionAuth 通信。您可以选择适当的权限集,将该 API 密钥限制为只能操作租户、应用和用户。

故障排除

请确认您的 API 密钥具有 MCP 客户端正在执行的操作所需的正确权限。

请查看 MCP 客户端日志;日志位置因 MCP 客户端和平台而异。例如,在 macOS 上,Claude Desktop 的日志位于 $HOME/Library/Logs/Claude/mcp-server-fusionauth-api-server.log。请查阅客户端文档,了解确切位置。

使用 modelcontextprotocol 检查器来判断问题出在 MCP 服务还是 MCP 客户端:npx @modelcontextprotocol/inspector。如果要更改 USE_TOOLS 变量,您无法动态更改它,必须在命令行中传入。npx @modelcontextprotocol/inspector npx @fusionauth/mcp-api -e API_KEY_APIKEYAUTH=... -e USE_TOOLS=create

本地构建

您也可以在本地构建并运行。

git clone https://github.com/FusionAuth/fusionauth-mcp-api.git
cd fusionauth-mcp-api
cd packages/mcp-api
npm install
npm run build

# optional step to store config information in .env file
cp .env.example .env
# optionally edit .env to set API_BASE_URL and API_KEY_APIKEYAUTH

然后,按照上述说明配置 MCP 客户端,以使用 FusionAuth API MCP 服务。

例如,要将其添加到 Claude Desktop,请编辑 ~/Library/Application Support/Claude/claude_desktop_config.json,并加入下方的 fusionauth-mcp-api 键。如果您尚未安装任何 MCP 服务,配置内容如下:

{
  "mcpServers": {
    "fusionauth-mcp-api": {
      "command": "npm",
      "args": [
        "run",
        "--silent",
        "--prefix",
        "<path to local git repo>/fusionauth-mcp-api/packages/mcp-api",
        "start"
      ],
      "env": {
        "API_KEY_APIKEYAUTH": "<your fusionauth api key>",
        "API_BASE_URL": "http://localhost:9011",
        "USE_TOOLS": "retrieve,search"
      }
    }
  }
}

如果已配置 .env 文件,可以省略上方的 env 部分。

发布

bin/updatemcp.sh git commit git tag git push origin main --tags npm publish --access public --workspace=packages/mcp-api

反馈

请在此仓库中提交功能请求和 Bug。

如果您想分享有趣的使用案例,或询问如何使用相关功能,请在 FusionAuth 论坛发帖。

评论

支持 Markdown

第一次接触 MCP?

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

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