furi

作者 ashwwwin

CLI & API for MCP management

171
Stars
10
Forks
TypeScript
语言
2026/8/23
添加时间

⚠️ 第三方软件声明

本 Skill 为第三方开源软件,独立托管于 GitHub。SkillTip 仅为信息目录,不控制或维护底层仓库。所显示的安全检查为自动化且范围有限,安装前请自行审查源码。

阅读服务条款

安装

添加到你的 Claude Code skills 目录:

# Add to your Claude Code skills
git clone https://github.com/ashwwwin/furi

快速入门

使用 furi 等 Skills 的指南。

安全报告

已验证

上次扫描:—

{
  "status": "PASSED",
  "issues": []
}

README.md

furi

furi is an easy to use, CLI & API for MCP management.

  • Download MCP servers [from GitHub]
  • Smithery.yaml detection (or auto detects/handles execution)
  • Fully featured CLI [nanospinners, readability]
  • Typescript & Javascript MCP's are supported
  • Python based MCP's are a key roadmap item (and will be supported)
  • HTTP API Routes (uses Bun http, stdio to http, clear and standard routes)
  • Customizable port and visibility of sudo routes
  • View all running MCPs + logs for each process
  • Process state management with PM2
  • Built with Bun and Typescript
  • is good with rice

Installation (macOS/Linux)

To install Furi, you can use the following command:

curl -fsSL https://furi.so/install | bash

Verify the installation by running:

furi

Furikake uses Bun under the hood, the install script will install Bun if it is not already installed.

Upgrade Furi

To upgrade Furi to the latest version, run:

furi upgrade

How to use

Manage MCPs

Furikake works with any public github repo as follows:

furi add <author/repo>

eg. furi add smithery-ai/mcp-fetch

You can also rename an MCP by using the rename command, please note this will restart the MCP if it is running.

furi rename <old-name> <new-name>

eg. furi rename smithery-ai/mcp-fetch mcp-fetch

Delete an MCP

furi remove <mcpName>

eg. furi remove mcp-fetch

List installed MCPs

Show all installed MCPs

furi list

Start an MCP

furi start <mcpName> -e '{"name1":"value1", "name2":"value2"}'

-e env is optional and dependant on the MCP server being called

Ensure you pass a valid JSON object to the -e flag.

Once you start a server with the -e flag, it will be saved to the config file and re-used when using the server again.

In order to view the env variables required for an MCP, use:

furi env <mcpName>

You can get a list of all the tools available (with details) of any MCP by using:

furi tools <mcpName>

then you can call the tool with:

Call a tool

furi call <mcpName> <toolName> '{"param1":"value1", "param2":"value2"}'

Parameters must be a valid JSON string enclosed in single quotes

Stop an MCP

furi stop <mcpName>

Restart an MCP

furi restart <mcpName>

Get the status of all running MCPs

This will show you the status of all running MCPs.

furi status

If you want to get the logs a specific MCP, you can use:

furi status <mcpName>

to view more output lines, use -l <lines>

Configuration storage

All installed MCPs, your configuration and logs are stored in the .furikake directory which can be located by running:

furi where

Using the MCP Aggregator

You can use Furikake with any MCP client such as Cursor via the MCP Aggregator.

Furi collects tools from all running MCPs and exposes them through an SSE endpoint that your app or mcp client can subscribe to. The aggregator automatically builds the list of tools from all running MCPs and listens for new tools as MCPs are started and stopped.

For MCP Clients that support SSE

To start the aggregator server:

furi meta start

This will also show you the endpoint your MCP client needs to subscribe to

For MCP Clients that only support stdio

Some MCP clients don't support SSE transport and require stdio connections. For these clients, use:

furi connect

This starts the aggregator server directly in stdio mode, allowing MCP clients to connect via stdin/stdout. The server will aggregate all tools from your running MCPs and make them available through the stdio transport.

Important: This command provides JSON-only output to comply with MCP protocol requirements. All logging is suppressed to ensure clean communication with MCP clients.

Note: Unlike furi meta start, this command runs in the foreground and maintains the connection directly.

You can specify a custom port:

furi meta start -p 9338

If you don't pass a port, it will default to 9338

To stop the aggregator:

furi meta stop

To restart the aggregator (preserving port settings):

furi meta restart

To check the status of the aggregator server:

furi meta status

To view more output lines, use -l <lines>

Using the HTTP API

  • Any MCP that is running, will automatically have an http route.
  • Turning an MCP on/off can only be done via the cli.

To access your MCP's via http, you can turn on the proxy via:

furi http start

In order to pass a port, you can use the http start -p <port> flag.

furi http start -p 9339

If you don't pass a port, it will default to 9339

To turn off the route, you can use:

furi http stop

HTTP API Reference

The Furikake HTTP API is divided into public routes and sudo routes. Public routes are accessible by default, while sudo routes must be explicitly enabled. With sudo routes, you can actively manage packages and instances via the HTTP API.

If you want to secure your API, you can set the HTTP_AUTH_TOKEN environment variable.

export HTTP_AUTH_TOKEN=your-secret-token

or in your .env file:

HTTP_AUTH_TOKEN=your-secret-token

GitHub Rate Limiting

To avoid GitHub API rate limiting when installing packages, you can provide a GitHub personal access token:

export GITHUB_KEY=your-github-token

or in your .env file:

GITHUB_KEY=your-github-token

This increases your rate limit from 60 requests/hour to 5,000 requests/hour. You can create a personal access token at GitHub Settings > Developer settings > Personal access tokens.

API Response Format

All API endpoints follow a standardized JSON response format:

  • Success responses:

    {
      "success": true,
      "data": {"The response varies by endpoint"}
    }
    
  • Error responses:

    {
      "success": false,
      "message": "Descriptive error message"
    }
    

HTTP Methods

  • POST - Used only for /mcpName/call/toolName and /mcpName/start endpoints
  • GET - Used for all other endpoints

Public Routes

EndpointMethodDescriptionParametersResponse Format
/listGETList running MCPs?all=true (optional) to show all installed MCPs{"success": true, "data": ["mcpName1", "mcpName2"]}
/toolsGETList all available tools from all running MCPsNone{"success": true, "data": [{"name": "toolName", "description": "Tool description", "inputSchema": {...}, "mcpName": "mcpName"}]}
/<mcpName>/toolsGETList tools for a specific MCPNone{"success": true, "data": [{"name": "toolName", "description": "Tool description", "inputSchema": {...}}]}
/<mcpName>/call/<toolName>POSTCall a tool on an MCPTool parameters as JSON in request body{"success": true, "data": {/* Tool-specific response */}}

Example Usage:

List running MCPs:

curl http://localhost:9339/list

To view all available tools for all online MCPs, you can use:

curl "http://localhost:9339/list"

List tools for all online MCPs:

curl http://localhost:9339/tools

List tools for a specific MCP:

curl http://localhost:9339/<mcpName>/tools

Call a tool:

curl -X POST http://localhost:9339/<mcpName>/call/<toolName> -d '{"data1":"value1", "data2":"value2"}'

Sudo Routes

To enable sudo routes that allow API management of MCPs:

furi http start --sudo
EndpointMethodDescriptionParametersResponse Format
/statusGETGet status of all MCPs (running and stopped)None{"success": true, "data": [{"name": "mcpName", "pid": "12345", "status": "online", "cpu": "0%", "memory": "10MB", "uptime": "2h"}]}
/add/<author>/<repo>GETInstall MCP from GitHubNone{"success": true, "data": {"installed": true, "message": "Successfully installed"}}
/<mcpName>/statusGETGet status of a specific MCP?lines=10 (optional) to control log lines{"success": true, "data": {"name": "mcpName", "pid": "12345", "status": "online", "logs": ["log line 1", "log line 2"]}}
/<mcpName>/restartGETRestart a specific MCPNone{"success": true, "data": {"restarted": true}}
/<mcpName>/startPOSTStart a specific MCPEnvironment variables as JSON in request body{"success": true, "data": {"started": true}}
/<mcpName>/stopGETStop a specific MCPNone{"success": true, "data": {"stopped": true}}
/<mcpName>/renameGETRename a specific MCP?newName=<newName> (required){"success": true, "message": "Renamed from oldName to newName"} or {"success": false, "message": "Error message"}
/<mcpName>/removeGETDelete a specific MCPNone{"success": true, "data": {"removed": true}}
/<mcpName>/envGETGet environment variables for a specific MCPNone{"success": true, "data": {"variables": ["key1", "key2"]}}

Example Usage:

Get status of all MCPs:

curl http://localhost:9339/status

Install an MCP:

curl http://localhost:9339/add/<author>/<repo>

Get status and logs of a specific MCP:

curl "http://localhost:9339/<mcpName>/status?lines=20"

Start an MCP with environment variables:

curl -X POST http://localhost:9339/<mcpName>/start -d '{"API_KEY":"your-api-key-here"}'

Restart an MCP:

curl http://localhost:9339/<mcpName>/restart

Stop an MCP:

curl http://localhost:9339/<mcpName>/stop

Rename an MCP:

curl "http://localhost:9339/<mcpName>/rename?newName=<newName>"

Remove an MCP:

curl http://localhost:9339/<mcpName>/remove

If you face any issues with the HTTP API server, you can use the furi http status to debug.

Closing notes

If you've made it this far, I hope you find Furikake useful and time saving. I built this for fun as a way for me to work with MCP's more hands on. If you wish to contribute, feel free to open an issue or a pull request. I will merge after I check out your changes.

If you think this is a good idea, please star the repo.

Thanks for checking out Furikake.

常见问题

What is furi?

furi is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by ashwwwin. CLI & API for MCP management. It has 171 GitHub stars.

Is furi safe to use?

furi returned warnings in SkillsLLM's automated security scan. It has no critical vulnerabilities, but review the flagged issues in the Security Report section before adding it to your workflow.

How do I install furi?

Clone the repository with "git clone https://github.com/ashwwwin/furi" and add it to your Claude Code skills directory (see the Installation section above).

What programming language is furi written in?

furi is primarily written in TypeScript. It is open-source under ashwwwin on GitHub, so you can review or fork the full source.

Are there alternatives to furi?

Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh furi against similar tools.

评论 (0)

暂无评论,成为第一个分享想法的人!

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP 服务器apisai-tools
查看详情

Scrapling

by D4Vinci

🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!

75,9137,581Python
MCP 服务器
查看详情

TrendRadar

by sansan0

⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。

61,65224,883Python
MCP 服务器
查看详情

context7

by upstash

Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors

61,0602,938TypeScript
MCP 服务器
查看详情

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

39,9393,219C
MCP 服务器
查看详情

开发者还喜欢

基于喜欢此 Skill 的开发者投票和收藏

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI 智能体ai-agentsbrainstorming
查看详情

hermes-agent

by NousResearch

10

The agent that grows with you

234,43747,175Python
AI 智能体ai-agentsagent-orchestration
查看详情

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP 服务器apisai-tools
查看详情

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI 智能体claude-codeai-tools
查看详情