SkillAgentSearch skills...

toolsmelt

Turn an OpenAPI file or a recorded website into a curated, tested MCP server; your agent designs the tools.

Install / Use

claude mcp add sepehr071 -- npx -y github:sepehr071/toolsmelt

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

81/100

Supported Platforms

Claude Code
Claude Desktop

Our assessment of toolsmelt

toolsmelt scores 81/100 on our quality scale, 3503rd of 4,583 Development & Engineering skills we index.

Its MCP Server is 23 KB long, well organised into 30 sections with 11 code examples: a thorough specification that gives an agent plenty to work with.

It has 10 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
30/30
Structure
20/20
Description
12/15
Adoption
4/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated yesterday, so toolsmelt is actively maintained.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 97/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

toolsmelt compared with similar skills

All 4 of these similar skills score higher than toolsmelt; compare them before choosing.

SkillScoreStarsUpdatedFormat
toolsmelt (this skill)by sepehr07181101d agoMCP Server
taste-skillby Leonxlnx100101.2k2d agoCLAUDE.md
Agent-Reachby Panniantong100101.1k2d agoCLAUDE.md
headroomby headroomlabs-ai10077.6ktodayCLAUDE.md
ai-job-searchby ai-job-search-dev10063.7k2d agoCLAUDE.md

Frequently asked questions

How do I install toolsmelt?
Run claude mcp add sepehr071 -- npx -y github:sepehr071/toolsmelt. The install tabs above show the steps for each supported agent.
Which AI agents does toolsmelt work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is toolsmelt safe to use?
It is MIT-licensed and scores 97/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is toolsmelt still maintained?
The repository was last updated yesterday, so toolsmelt is actively maintained.
<!-- mcp-name: io.github.sepehr071/toolsmelt --> <p align="center"><img src="docs/assets/banner.png" alt="toolsmelt" width="100%"></p>

toolsmelt

Formerly mcpsmith. uvx mcpsmith and servers generated by mcpsmith keep working; your saved connections in ~/.mcpsmith, MCPSMITH_* variables and keychain entries are still read. Run uvx toolsmelt setup once to swap the agent entries over.

Turn an OpenAPI file, a Postman collection, a website you log in to, an app you own or a SQL database into a few curated tools for your AI agent. New formats plug in as packages (docs/extending.md). An LLM designs the tools; you get ordinary Python code you own if you want to publish them.

uvx toolsmelt setup

What you can turn into tools

| Source | Command | |---|---| | OpenAPI / Swagger file or URL | toolsmelt inspect <file-or-url> | | Postman collection (v2.0/v2.1 export) | toolsmelt inspect shop.postman_collection.json | | cURL commands (DevTools "Copy as cURL") | toolsmelt inspect requests.txt | | SQL database (SQLite, PostgreSQL, MySQL, anything SQLAlchemy reads) | pip install "toolsmelt[sql]", then toolsmelt inspect sqlite:///shop.db | | SOAP service (WSDL 1.1) or XML API | toolsmelt inspect https://example.com/service.asmx?WSDL | | gRPC service (server reflection) | pip install "toolsmelt[grpc]", then toolsmelt inspect grpc://localhost:50051 | | Website or logged-in dashboard | toolsmelt browser, then your agent records it (toolsmelt capture <url> records a HAR without the hub) | | Android app (APK you own) | toolsmelt app-android app.apk --base-url https://api.example.com | | Electron / JavaScript app | toolsmelt app-js <dir\|app.asar\|file> --base-url https://api.example.com | | Desktop program | toolsmelt app-desktop (prints the mitmproxy steps), then toolsmelt app-desktop capture.har --host api.example.com |

Apps and programs: only software you own or are authorized to analyze.

<p align="center"><img src="docs/assets/screenshot-help.png" alt="toolsmelt command list" width="100%"></p> <p align="center"><em><code>toolsmelt --help</code>: the command list.</em></p>

Quickstart: a logged-in website

uvx toolsmelt setup                  # once: registers toolsmelt + Chrome DevTools MCP with your agents
uvx toolsmelt browser                # opens the shared Chrome; log in to the site yourself
# restart your agent, then ask it:
#   "Record example.com in the shared Chrome and connect it as tools."
# the extract-api skill runs the rest: record, inspect, design, validate, connect

Your passwords and 2FA codes never reach the agent. Details are under Live hub.

Proven on real software

  • Tusky 29.0 (open-source Android client, Retrofit): toolsmelt app-android found 113 endpoints with every HTTP method resolved (48 GET, 43 POST, 11 DELETE, 8 PUT, 3 PATCH) and no unresolved notes. Minified annotation names were resolved from the app's own request-builder class, not guessed.
  • GitHub Desktop 3.6.7 (Electron): toolsmelt app-js found 33 endpoints with every method resolved. All 33 were traced to their original TypeScript line through the app's source maps.
  • hn.algolia.com (public API, no login): recorded in the shared Chrome. 2 curated tools were connected through the hub and returned live results. The tools were still present after restarting the hub.
  • An internal attendance dashboard (ASP.NET, cookie login): recorded while logged in. 2 tools answered the owner's questions. After logout the tools return a clear session-expired error.

Numbers are from runs on 2026-10-21 with toolsmelt 0.4.0. Reproduce the first two with toolsmelt app-android and toolsmelt app-js on those apps.

<p align="center"><img src="docs/assets/screenshot-app-js.png" alt="toolsmelt app-js reading an Electron app's own code" width="100%"></p> <p align="center"><em><code>toolsmelt app-js</code> reading an Electron app's own code.</em></p>

For coding agents

No API key needed: your coding agent is the designer.

  • Skills (plain Markdown, any agent can read them): skills/build-mcp-server (the whole workflow), skills/extract-api (logged-in sites into live tools), skills/design-mcp-tools (design checklist). AGENTS.md points Codex, Cursor and Gemini CLI at them.
  • MCP tools (paths absolute): smith_guide, smith_inspect, smith_app_android, smith_app_js, smith_app_desktop, smith_probe, smith_draft, smith_validate, smith_generate, smith_check, smith_install, and for the hub smith_record_start, smith_record_stop, smith_connect, smith_disconnect, smith_connections, smith_login, smith_tools, smith_call.
  • MCP config, any client:
    {"mcpServers": {"toolsmelt": {"command": "uvx", "args": ["toolsmelt", "mcp"]}}}
    
  • Claude Code plugin (skills + MCP server): /plugin marketplace add sepehr071/toolsmelt, then /plugin install toolsmelt@toolsmelt.

MCP clients start servers without your shell's proxy variables. Behind a proxy, add "env": {"HTTPS_PROXY": "http://127.0.0.1:8080"} so smith_inspect can fetch specs.

Live hub

Skip the project: connect a plan and its tools appear in your agent right away. The toolsmelt MCP server is the hub. Connections are saved under ~/.toolsmelt (TOOLSMELT_HOME) and load again on restart. They are personal (one machine, one user); generate stays the way to publish.

From the agent: smith_inspect, edit plan.yaml, smith_validate, then smith_connect(workdir, name) and call the new tools. If your client does not show tools added after start, use smith_tools(connection) and smith_call(connection, tool, args) (read-only tools only). smith_connections lists, smith_disconnect(name) removes (CLI: toolsmelt connections).

Logged-in sites

For a dashboard or portal with no public API, the agent records the site's own calls while you use it. The extract-api skill runs the whole flow.

toolsmelt browser                                                      # shared Chrome on port 9222 (--port N, --no-proxy)
npx chrome-devtools-mcp@1.11.0 --browser-url=http://127.0.0.1:9222    # point Chrome DevTools MCP at it
  1. Log in yourself in that Chrome window (passwords and 2FA never reach the agent).
  2. The agent calls smith_record_start(name, hosts), browses each feature twice with different inputs, then smith_record_stop(name), which writes a HAR with cookies and tokens dropped.
  3. It inspects, designs and connects the plan with auth: {type: browser, login_path: /login}. Calls reuse your Chrome session; when it expires the tool says to log in again.

Agents must not use DevTools get_network_request: it prints request headers, including cookies. generate refuses browser-auth plans because they only work with your Chrome; switch to token or API-key auth to publish.

Websites without the hub

pip install "toolsmelt[capture]" && playwright install chromium
toolsmelt capture https://example.com -o site.har --host example.com   # browse, then close the tab
toolsmelt inspect site.har --host example.com
toolsmelt draft --name example-mcp
# redesign plan.yaml, then validate, generate, check as under Export & publish

While recording, do each thing you want as a tool: search, open a detail page, paginate, apply a filter. Anything you do not click is not in the capture. --host (repeatable) keeps only the hosts you list. A DevTools "Save all as HAR" export works in place of capture. The recording browser uses HTTPS_PROXY when it is set.

A HAR holds everything the browser sent and received, including cookies and your personal data: keep it out of git and delete it after inspect. inspect scrubs what it keeps: an API key or token becomes an auth env var with its value dropped, other secret-looking headers and query params are dropped, and emails, phone numbers, JWTs and values under secret or personal field names are masked in examples and test fixtures. This is pattern-based, so read tests/fixtures/ before you publish a generated server. If a key is a public one the site sends to every visitor (a search or maps key), you may put it in the tool's fixed values.

Apps and programs

Only for software you own or are authorized to analyze.

  • Desktop program: toolsmelt app-desktop prints the steps to record its traffic with your own mitmproxy (mitmdump --set hardump=capture.har); toolsmelt app-desktop capture.har --host api.example.com imports the result. toolsmelt runs nothing for you, and certificate-pinned programs are out of scope.
  • Android app: toolsmelt app-android app.apk --base-url https://api.example.com reads the app's Retrofit interface. It needs a decompiler: the free jadx CLI on PATH (scoop install extras/jadx, brew install jadx), or REA's JADX jar (REA_JADX_MCP_JAR). Without --class it lists candidate classes. Before decompiling it triages the APK in about a second (zip listing and dex bytes): a Flutter or React Native app, or one without Retrofit, gets its next step right away (record its traffic, or app-js on a React Native JS bundle), and a known request-signing SDK names the sign-in provider to use.
  • App that signs its own requests: plans use auth: {type: signin, provider: xiaomi} (Mi Home cloud is the first provider). The user signs in on the provider's own page through a link from the server's <prefix>_login tool (smith_login in the hub); the session goes to the OS keychain. Calling the login tool again names the account and where its data is, which catches a wrong account or region.
  • Electron/JavaScript app: toolsmelt app-js <dir|app.asar|file> --base-url ... reads the calls in its shipped code.

Neither app-android nor app-js runs the app. The endpoints are unverified (no example response) until toolsmelt probe calls the GET ones live with your credentials (--writes for the rest, only after you agree). A method that cannot be read stays empty and validate refuses it.

Setup

uvx toolsmelt setup registers the toolsmelt and toolsmelt-chrome (Chrome DevTools) MCP servers, and copies the skills into each coding agent it finds (Claude Code, Codex, Cursor, Gemini CLI). Options:

  • --dry-run prints the plan and writes nothing.
  • --agents claude,codex limits it to those agents (default: the ones found).
  • --rea also installs REA (rea-agents). It is off by default: its MCP server adds about 200 tools to each agent, and toolsmelt's app path needs only plain tools such as jadx.
  • --no-skills skips the skills; --yes skips the confirmation.
  • --remove undoes what setup did. Entries and skill folders you made yourself are left alone. REA stays installed (you may have had it before); the command prints the line that removes it.

Before setup first changes a config file, it copies the file to *.toolsmelt.bak. The backup is made once and not refreshed by later runs. Restart your agents afterwards. Run toolsmelt browser before using Chrome DevTools: it starts the shared Chrome the server connects to.

Claude Code plugin users already get both servers from the plugin and do not need setup.

toolsmelt install <project> registers a server made by generate with the same agents, the same way: it runs the project folder (uv run --directory), or the released package with --pypi. It touches only the entry named after the plan and refuses one of that name that runs something else unless --force. --remove takes it out again.

<p align="center"><img src="docs/assets/screenshot-setup.png" alt="toolsmelt setup --dry-run plan" width="100%"></p> <p align="center"><em><code>toolsmelt setup --dry-run</code> prints what it would change and writes nothing.</em></p>

Transforms

Plans convert formats with transform on argum

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars10
CategoryDevelopment
Updated1d ago
Forks0

Languages

Python

Trust signals

97/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 info