ForgePilot MCP
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ForgePilot MCPresearch the Stripe API and generate a Claude MCP config snippet"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Aitherium Agent Pack — ForgePilot
ForgePilot is a hackathon-ready agent pack for building and shipping agent integrations from wherever the work already happens.
The hackathon demo is deliberately self-referential: it shows the process used to build this pack. A plain-language request becomes research, a local aw* bootstrap plan, a scoped identity/policy boundary, desktop connectors, a phone PWA, and a shareable artifact.
It gives you one local runtime with four surfaces:
an Aitherium/awdk pack and fleet definition;
a small MCP server for Codex, Claude Desktop/Code, ChatGPT-compatible MCP clients, and any MCP host;
a WebMCP-enabled control room for browser agents;
generated OpenRouter and Exa adapter configs.
The demo story is simple: ask ForgePilot to research an API or integration, get grounded Exa sources, then produce a portable setup bundle for the coding client you are using.
The larger hackathon story is Agents Everywhere: bootstrap/AGENT_EVERYWHERE.md walks a new builder from zero to awdk, Bonsai/local inference, MCP, awsh, desktop, and secured remote connections.
Backend switching is a first-class path too: run bash bootstrap/switch-claude-backend.sh code (or the PowerShell equivalent) to use adk claude-model code for the DeepSeek Flash coding profile, then verify with adk claude-model check. The pack exposes the same plan through forgepilot_backend_switch_plan.
The pack is also designed to be opened alongside Aitherium Studio: use pack.yaml as the identity/tool contract, fleet.yaml as the orchestration view, and the control room as the browser-native demo surface. Use SHAREABLE_PACKS.md when you want to turn a new idea into a portable MCP + WebMCP + PWA tool that other builders can apply.
Quick start
Windows
Set-ExecutionPolicy -Scope Process Bypass
./setup.ps1macOS/Linux
chmod +x setup.sh
./setup.shThe setup script creates .venv, installs this project plus the aw* acceleration and authorization bricks, writes .env, and emits client config snippets under integrations/generated/. For an offline demo-only install, set SKIP_AWSDK=1.
Add EXA_API_KEY for live research and OPENROUTER_API_KEY for model-backed chat. The app still starts without either key in demo mode, so the control room and MCP handshake can be shown offline.
Start the control room:
python -m aitherium_pack serveOpen http://127.0.0.1:8787.
GitHub Pages
The repository ships an automated static deployment. Enable Settings → Pages → GitHub Actions, then push main. The pages.yml workflow builds the PWA and deploys it to the repository's Pages URL; verify.yml tests every pull request and checks the Pages bundle. The hosted page is a client only: configure its MCP endpoint to your own authenticated HTTPS ForgePilot/Aitherium node. See DEPLOY.md for CORS, token, and repository-variable setup.
Or create a durable run artifact directly:
python -m aitherium_pack run "Design a safe Codex and Claude MCP integration for this project"That writes artifacts/runs/<run-id>/ with research.json, response.json, report.md, stack.json, and a SHA-256 manifest.json.
If you want the native Aitherium fleet server after setup:
adk-serve --fleet fleet.yaml --port 8080Related MCP server: dev-mcp
What is included
pack.yaml awdk-style pack metadata
fleet.yaml awdk fleet definition
aitherium_pack/
cli.py one-command setup/serve/config generation
server.py stdlib HTTP + MCP JSON-RPC server
providers.py Exa and OpenRouter adapters
config.py generated client config helpers
web/index.html ForgePilot control room + WebMCP tools
skills/ portable pack skills
integrations/ checked-in examples and generated snippetsDesktop integrations
The generated files are intentionally plain JSON snippets so they can be copied into the client of choice:
Claude Desktop / Claude Code:
integrations/generated/claude.mcp.jsonCodex-style MCP clients:
integrations/generated/codex.mcp.jsonChatGPT or any remote MCP client:
integrations/generated/remote-mcp.json
For a local stdio client, the server command is python -m aitherium_pack mcp. For a remote client, expose the HTTP server through a trusted tunnel and use /mcp. The HTTP server binds to loopback by default; non-loopback mode requires FORGEPILOT_MCP_TOKEN plus an explicit trusted-LAN flag. CORS is origin-allowlisted and request bodies are bounded.
awdk connection
The pack is shaped for the current awdk workflow: pip install awdk, adk install pack:..., a named identity, and a fleet YAML. When awdk is installed, python -m aitherium_pack install-awdk --cloud runs the native cloud quickstart path and leaves this pack as the project-owned integration layer. The local MCP server remains dependency-light so the hackathon demo can run even before a full model backend is configured.
Identity and capability boundary
The device-flow and local-stack plans are designed around the Aitherium front door: awnboard receives the request, awiam identifies the caller/session, awbac makes a fail-closed capability decision, awdit records it, and awtunnel handles private reachability. Only after approval does awsh/awdk reach Bonsai-27B, awm, awrepl, awgraph, awgit, or ForgePilot MCP.
Safety boundary
ForgePilot’s first-party tools are read-only: health, web research, grounded chat, and config generation. Research results are marked untrusted before entering the model prompt. No email, purchase, file mutation, shell, or browser-navigation tool is exposed by default.
Sources
Available Tools
12 toolsforgepilot_backend_switch_planB
Show the safe adk/awsettings plan for switching Claude Code to a provider such as DeepSeek Flash. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| profile | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does add one valuable behavioral fact — 'Read-only' — implying no mutation occurs. It does not disclose what the plan contains, whether it can be applied by another tool, or any auth/prerequisite conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the purpose and closed with the safety trait. Efficient, though the internal jargon slightly muddies an otherwise clean statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with no output schema, the description adequately conveys purpose and safety but leaves the sole parameter undefined and gives no sense of what the plan output looks like or how it differs from sibling planning tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter ('profile') with 0% schema description coverage, and the description never explains what the profile refers to, its expected values, or its effect on the returned plan. With no annotations or schema text, this gap is unmitigated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (show) and resource (a backend/provider switch plan for Claude Code), and the 'plan' framing partially distinguishes it from sibling generator tools. However, it names no sibling explicitly and leans on jargon ('adk/awsettings') an agent may not resolve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this when you need a preview of switching providers. But it never says when to prefer it over forgepilot_generate_config or forgepilot_local_acceleration_plan, nor whether a profile argument is required to get a meaningful result.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forgepilot_chatC
Answer an integration question using optional Exa evidence through OpenRouter. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | ||
| evidence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Read-only' is a genuinely useful disclosure, and naming Exa/OpenRouter implies an external network call, but it says nothing about latency, cost, auth, or failure modes for a tool that reaches out to third-party services.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and mechanism, with no filler. The 'Read-only.' fragment is clipped but useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and 0% parameter coverage mean the description should do far more. It omits the return shape, message formatting, and the structure of the evidence array, leaving the agent under-informed before invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It implies the evidence parameter is Exa-sourced and optional, which adds some meaning, but the required 'message' parameter's format and constraints are entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (answer) and resource (integration question) and hints at the mechanism (Exa evidence via OpenRouter). It does not explicitly contrast itself with forgepilot_search, but the chat/answer framing is distinct enough for an agent to separate the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus forgepilot_search or any other sibling, and no prerequisites or exclusions. The agent must infer that this is for reasoning-style Q&A rather than retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forgepilot_community_bridge_planB
Show the safe ARC, awgym, awrelay, Relay, Forums, Spaces, and AwDesk connection plan. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose the key trait that this is read-only (non-mutating, safe to call), which is meaningful for a planning tool, but it says nothing about whether the plan is cached, whether it queries live systems, or what it returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the operation front-loaded and the safety qualifier at the end. It is appropriately sized, though the block of proper nouns is dense and reads as a feature dump rather than clarifying prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description does not need to explain inputs or return values, so it is nearly sufficient. However, the opaque target names and the absence of any routing guidance to sibling planning tools leave a competent agent guessing about scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case. Schema coverage is reported at 100% with no fields to describe, so there is no semantic gap for the description to fill.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs the verb 'Show' with a specific resource ('the ... connection plan'), making it a read/retrieve operation rather than a mutation. This distinguishes it from the sibling forgepilot_create_community_bridge_pack, which produces an artifact. It falls short of 5 because the enumerated targets (ARC, awgym, awrelay, Relay, Forums, Spaces, AwDesk) are unexplained jargon that an agent cannot map to concrete meaning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus the closely related forgepilot_backend_switch_plan, forgepilot_local_acceleration_plan, or forgepilot_create_community_bridge_pack. 'Read-only' hints at a safe inspection context but no prerequisites, triggers, or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forgepilot_create_artifactB
Create a timestamped, read-only integration run bundle with evidence, response, report, and SHA-256 manifest.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose two real traits: the bundle is timestamped and read-only, and it includes a SHA-256 manifest. However, it does not state where the artifact is written, whether the call has side effects beyond producing the bundle, permission requirements, or whether it is idempotent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb first and the resource's defining properties immediately after. Every clause adds information; nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description effectively outlines the produced artifact's composition, which partly substitutes for the absent output schema, but with no annotations and a fully undocumented required input parameter, an agent still lacks enough to invoke the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter ('request') with 0% schema description coverage, and the description says nothing about its expected format or content (e.g., JSON spec vs. natural-language instruction). The enumerated items (evidence, response, report, manifest) describe the output bundle, not the input, so the parameter remains opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Create') and a well-defined resource (a timestamped, read-only integration run bundle), and enumerates the bundle's contents (evidence, response, report, SHA-256 manifest). It is clear what the tool produces, though it does not explicitly distinguish itself from close siblings like forgepilot_create_connector_artifact or forgepilot_create_shareable_pack.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus the other create_* siblings, no prerequisites, and no conditions or exclusions. The agent must infer usage entirely from the name and resource type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forgepilot_create_community_bridge_packC
Create a no-secrets community bridge artifact for ARC, awgym, awrelay, Relay, Spaces, and AwDesk.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. 'No-secrets' is a useful constraint, but auth requirements, idempotency/reversibility, rate limits, and whether it mutates remote state are unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler. It is appropriately compact, though it leaves out necessary context, so conciseness comes at the expense of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with one optional parameter and no annotations or output schema, the description states what is created and for which platforms. However, it omits when to use it, what 'no-secrets' means operationally, and what the name parameter should contain, leaving real gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, name, has 0% schema description coverage and is not mentioned in the description. The description adds no meaning about what the name represents, its format, or any constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'Create' plus resource 'community bridge artifact' and enumerated target platforms. It distinguishes itself from generic create_artifact, but never explicitly contrasts with siblings like create_shareable_pack or create_connector_artifact, leaving some ambiguity about which artifact tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not, or alternative guidance. The description only states what it creates; an agent gets no cue for choosing this over forgepilot_create_artifact or forgepilot_create_shareable_pack.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forgepilot_create_connector_artifactB
Generate runnable Claude Code and Codex MCP configs plus bootstrap scripts for the current local checkout.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It names the outputs but does not say whether files are written to disk, where they land, whether existing files are overwritten, or whether any permissions are needed for a tool with 'create' semantics — significant gaps for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the delivverable is stated immediately and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description should clarify the produced artifacts' form and destination. It names the artifacts but leaves the write-vs-return behavior unclear, making it only minimally adequate for an agent to invoke confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate beyond the schema. Baseline for a parameterless tool is 4; the description does confirm the implicit scope (current local checkout) that substitutes for input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Generate) and concrete deliverables (Claude Code and Codex MCP configs plus bootstrap scripts), which clearly differentiates it from the vaguer generate_config sibling. It does not explicitly name which sibling it is not, but the artifact list makes the intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the artifact scope ('for the current local checkout') but offers no when-to-use guidance, no exclusions, and no routing away from close siblings like forgepilot_generate_config or forgepilot_create_artifact. An agent has to guess which of the generation tools to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forgepilot_generate_configB
Generate portable MCP client configuration snippets. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does disclose that the operation is read-only (no side effects). However, it says nothing about what the generated snippet is derived from, whether output is deterministic, or what clients it targets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core purpose front-loaded and the safety qualifier trailing. Nothing is wasted or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description must fully explain the result, and it only gestures at 'portable MCP client configuration snippets' without saying which clients or what the snippet contains. Adequate for a zero-param tool, but thin given it bears the entire explanatory load.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. No parameter meaning is missing or misleading.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Generate portable MCP client configuration snippets.' This is clearly distinct from siblings like forgepilot_create_artifact or forgepilot_create_shareable_pack, though it doesn't explicitly name which sibling to prefer over it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus the many forgepilot_* creation tools, nor any prerequisites or exclusions. The only context is the appended 'Read-only' note, which is a safety trait rather than usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forgepilot_healthB
Return the local ForgePilot runtime status. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden, and it does disclose the essential behavioral trait ('Read-only', i.e., non-mutating). It says nothing about return contents, latency, or whether the local runtime must be running first, which leaves meaningful gaps for a diagnostic tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, purpose front-loaded, zero filler. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, simple tool with no output schema, the description is minimally adequate but does not describe what the returned status contains or how to interpret unhealthy states. More detail would help an agent act on the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to document and the baseline is 4. The description correctly refrains from inventing parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return') and resource ('local ForgePilot runtime status'), which is unambiguous on its own. It does not, however, distinguish this from siblings like forgepilot_chat or forgepilot_search, which the agent must infer from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to call this versus alternatives or what situation warrants a health check. The implied usage (diagnostics/liveness) is left entirely to inference, and 'Read-only' is the only routing hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forgepilot_local_acceleration_planB
Inspect local aw* command/package presence and return the Bonsai model activation plan for Codex and Claude Code. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It does state 'Read-only,' which is a meaningful behavioral trait (no mutation of local environment), but it omits auth requirements, side effects on the local system, and any output shape details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences, front-loaded with the core action and appending the safety trait last. No filler, though the technical jargon slightly reduces scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description must stand alone. It states what it inspects and roughly what it returns, but leaves the parameter meaning and the contents/format of the returned plan unspecified, which is a notable gap for a plan-generating tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'model' parameter has 0% schema description coverage, and the description never explains what the parameter controls or its accepted values. The phrase 'Bonsai model activation plan' hints at models in general but does not clarify the parameter, so the description fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names specific verbs (inspect presence, return plan) and resources (local aw* commands/packages, Bonsai model activation plan for Codex/Claude Code), which distinguishes it from generic siblings like forgepilot_health or forgepilot_chat. It is clear, though the jargon-laden phrasing and lack of a direct sibling comparison keep it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no stated prerequisites, and no routing against alternative plan tools such as forgepilot_backend_switch_plan or forgepilot_community_bridge_plan. Usage can only be inferred from the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forgepilot_searchB
Search the web with Exa and return compact, untrusted highlights with source URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| num_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose that results are 'untrusted' and 'compact highlights', which is real behavioral context about output trust level and format. It does not disclose rate limits, cost, or whether results are cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and back-loads the output characteristics. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter read-only search tool with no output schema, the description is adequate but thin. It omits parameter guidance and any note on result count limits, which the schema alone covers only by constraint, not by meaning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only indirectly implies what a query does ('Search the web'), and says nothing about num_results constraints (max 10) or the minimum query length of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (the web via Exa) plus the output shape. It is clearly distinguishable from siblings like health, chat, or config tools, though 'forgepilot_search' would be even clearer if it named which backend it routes to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative tooling is mentioned. The agent has no guidance on when web search is appropriate versus other forgepilot capabilities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forgepilot_start_device_flowC
Create a consent-scoped Aitherium device-flow handoff for local inference, MCP, workspace, and LAN capabilities. No token is returned.
| Name | Required | Description | Default |
|---|---|---|---|
| scopes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose two meaningful traits: the flow is consent-scoped and it does not return a token, which tells the agent the result must be completed elsewhere and prevents it from waiting on a credential. It omits auth requirements, expiration behavior, and what the handoff object actually contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the action stated first and the key caveat ('No token is returned') placed last. Nothing is padded, though the second sentence's caveat could be integrated more usefully with what the caller should do next.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a token-less device-flow initiation with no output schema, no annotations, and an undocumented parameter, the description is too thin. It should explain the flow's next steps and the shape of the handoff, otherwise an agent has no idea how to continue after calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'scopes' parameter has 0% schema description coverage and no enum, and the description only gestures at it via 'consent-scoped.' It never explains accepted scope values, formats, or defaults, leaving the agent with no way to populate the one input beyond guessing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Create') and a named resource (an 'Aitherium device-flow handoff'), which is enough to separate it from the plan/config/artifact siblings. The jargon ('Aitherium') is undefined, but the agent can still tell this initiates a device-flow rather than producing a plan or config.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool versus alternatives, no prerequisites, and no indication of what to do once the flow is started. The one useful hint — 'No token is returned' — is a behavior, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
12 tool updates
v0.1.0- First observed
forgepilot_backend_switch_plan - First observed
forgepilot_chat - First observed
forgepilot_community_bridge_plan - First observed
forgepilot_create_artifact - First observed
forgepilot_create_community_bridge_pack - First observed
forgepilot_create_connector_artifact - First observed
forgepilot_create_shareable_pack - First observed
forgepilot_generate_config - First observed
forgepilot_health - First observed
forgepilot_local_acceleration_plan - First observed
forgepilot_search - First observed
forgepilot_start_device_flow
TDQS
Scored across 12 tools
Several tools generate configs or artifacts (generate_config, create_connector_artifact, create_artifact, create_shareable_pack, create_community_bridge_pack) with overlapping 'create' verbs, and chat/search both use Exa, so misselection is possible despite descriptive text.
All tools use the forgepilot_ snake_case prefix, but four tools are noun-phrase plans (local_acceleration_plan, backend_switch_plan, community_bridge_plan) while the rest use verb or verb_noun patterns, a minor deviation.
12 tools is well within the ideal 3-15 range and each tool maps to a distinct ForgePilot integration task (health, search, config, artifacts, plans), so the count is appropriate.
The surface covers many one-way generation/planning tasks but lacks lifecycle operations: no list, get, update, or delete for artifacts/packs, and device flow has only a start tool with no completion/poll tool.
Maintenance
Related MCP Connectors
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceLocal-first MCP server that provides project context, verification gates, and structured tools for coding agents to discover knowledge, run diagnostics, and execute allowlisted commands within a repository.24 npmMIT
- AlicenseNot gradedqualityBmaintenanceA local MCP server that gives AI agents access to developer tooling — GitHub (read-only), documentation search, and web research — via stdio transport.MIT
- AlicenseNot gradedqualityCmaintenanceA local, read-only MCP server that lets coding agents search the complete AAS skill catalog, compose and validate agent-chosen skill stacks, and generate reproducible, reviewable plans without uploading project code.6,708 npm1MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that helps coding agents research and prepare GitHub contributions by gathering repository guidance, related work, code context, and validation evidence into a local SQLite corpus, without ever writing to GitHub.384 npm3MIT