Add a tool to the MCP server that lets AI agents play OpenFoot Manager.

GPL-3.0Auto-check passedAgent Workflows

Install Add MCP Tool

skills CLI
$ npx skills add openfootmanager/openfootmanager --skill add-mcp-tool -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install openfootmanager/openfootmanager add-mcp-tool --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/openfootmanager/openfootmanager.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/add-mcp-tool .claude/skills/add-mcp-tool && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
add-mcp-tool
GitHub stars
1.1k
Token cost
~1.6k tokens
SKILL.md length
693 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
GPL-3.0

At a glance

Add a tool to the MCP server that lets AI agents play OpenFoot Manager.

  • Works in 6 steps: Implement it in the right tools_impl/… → Register the route → Add the catalog entry → …
  • Tasks that involve MCP servers
  • SKILL.md covers 1. Implement it in the right…, 2. Register the route, 3. Add the catalog entry and 4. Emit game-state-changed if…, plus 4 more sections
  • Calls cargo and curl

What it does

Add MCP Tool is an agent skill from openfootmanager/openfootmanager. Add a tool to the MCP server that lets AI agents play OpenFoot Manager. Follows the six-step checklist in tools.rs — route registration, catalog entry, implementation in the right toolsimpl module, game-state-changed emission, competition-mode gating, and the docs/MCPSERVER.md tables.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering MCP servers. It works with Model Context Protocol and Tauri. The repository describes itself as: An open source soccer/football manager game. The licence is GPL-3.0.

When your agent uses it

  • Tasks that involve MCP servers

Example prompts

  • “/add-mcp-tool”

Requirements

  • Pre-approved tools (allowed-tools): Read, Edit, Write, Grep, Glob, Bash(cargo build*), Bash(cargo test*), Bash(cargo clippy*)

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Implement it in the right tools_impl/ module
  2. Register the route
  3. Add the catalog entry
  4. Emit game-state-changed if it mutates
  5. Decide competition-mode visibility
  6. Update docs/MCP_SERVER.md

What it can do on your machine

Read from SKILL.md and the folder at commit 90b05fd. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Edit
    • Write
    • Grep
    • Glob
    • Bash(cargo build*)
    • Bash(cargo test*)
    • Bash(cargo clippy*)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • cargo
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Add MCP Tool loads about 1.6k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 693 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~75
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from openfootmanager/openfootmanager at commit 90b05fd, republished under its GPL-3.0 licence (© openfootmanager). 693 words, ~1,644 tokens.

Download SKILL.mdSave it as .claude/skills/add-mcp-tool/SKILL.md (or your agent's skills folder).
name
add-mcp-tool
description
Add a tool to the MCP server that lets AI agents play OpenFoot Manager. Follows the six-step checklist in tools.rs — route registration, catalog entry, implementation in the right tools_impl module, game-state-changed emission, competition-mode gating, and the docs/MCP_SERVER.md tables.
allowed-tools
Read, Edit, Write, Grep, Glob, Bash(cargo build*), Bash(cargo test*), Bash(cargo clippy*)
when_to_use
Adding or changing an MCP tool, exposing an existing Tauri command to agents, or when a tool exists but help_find_tool cannot see it.
argument-hint
[tool name and what it does]

Adding an MCP tool

The MCP server (src-tauri/src/mcp_server/, behind the mcp Cargo feature) lets AI agents play the game over JSON-RPC. It is used for agent competitions — see docs/MCP_SERVER.md.

The authoritative checklist lives in the code, at tool_catalog() in src-tauri/src/mcp_server/tools.rs. Read it; this skill expands on it.

The router and the catalog are two separate lists that must stay in sync. help_find_tool searches only the catalog, so a tool registered in the router but missing from the catalog works if an agent guesses its name and is otherwise invisible. The tools.rs tests every_routed_tool_is_in_the_catalog, every_catalogued_tool_has_a_route, duplicate-name and registration-parser checks enforce this when run with --lib --features mcp; they are not executed by a default-feature test run.


1. Implement it in the right tools_impl/ module

src-tauri/src/mcp_server/tools_impl/ — info.rs, time.rs, squad.rs, training.rs, transfers.rs, contracts.rs, inbox.rs, club.rs, scouting.rs, season.rs, game.rs, live_match.rs, help.rs. Shared helpers (require_game, user_team, …) are in helpers.rs.

Call the same _internal function the Tauri command calls. Never reimplement game logic here. If the behaviour has no _internal split yet, do that first — see /add-tauri-command. Check that the shared function is reachable in default and mcp builds; application code never imports MCP or commands. Apply the root Code quality limits and use /write-tests (programme PR 2) first.

Return text an agent can actually use. Tools return prose or JSON, not opaque ids: an agent reading info_standings should be able to act on it without a second call. Follow the formatting of the neighbouring tools in the module, and translate error keys through formatting.rs.

Respect competition-mode information limits. Full detail for the agent's own team; OVR, position, age, and condition only for other teams unless the player has been scouted. A new info_* tool that leaks opponent attributes silently breaks competition fairness.

2. Register the route

In build_tool_router() in tools.rs. Three macros cover most cases:

  • real_tool! — no parameters
  • id_tool! — one required string parameter (the schema key and the impl function's second parameter name must match)
  • custom_tool! — custom JSON schema plus custom extraction

Every registration is wrapped in a disabled.contains(…) check, which is how mode restrictions and --mcp-disable-tools work.

3. Add the catalog entry

tool_catalog() in the same file: (name, description, category). Use an existing category string exactly — a typo creates a phantom category in help_list_categories.

The description is what an agent reads when deciding whether to call the tool. Say what it does and when to use it.

4. Emit game-state-changed if it mutates

Any state-mutating tool must emit app.emit("game-state-changed", ()) via ctx.app_handle, so a GUI watching the agent play refreshes. Read-only tools must not.

Show full SKILL.md (274 more words)Show less

5. Decide competition-mode visibility

If agents must not have this tool in a competition, add its name to the Competition arm of disabled_tools() in src-tauri/src/mcp_server/config.rs. Currently disabled there: game_new, game_select_team, game_export_world, game_exit, game_load_save — anything that would let an agent change its own starting conditions.

6. Update docs/MCP_SERVER.md

Add the row to the right category table and update the two counts in the header line ("N tools are available across M categories") and the per-category heading ("### Squad (7 tools)"). Stale counts are how this document rots.


Verify

Finish with /preflight for the full default and MCP gate set. These scoped commands use the same lockfile and warning policy; they do not replace the full preflight.

bash
cargo build --locked --manifest-path src-tauri/Cargo.toml --features mcp
cargo clippy --locked --manifest-path src-tauri/Cargo.toml --workspace --all-targets --features mcp -- -D warnings
cargo test --locked --manifest-path src-tauri/Cargo.toml --workspace
cargo test --locked --manifest-path src-tauri/Cargo.toml --lib --features mcp

The mcp feature is not compiled by default, so a normal cargo check will not catch a mistake in this code. Build and test with --features mcp. Add one test per GWT scenario through the shared seam and adapter: wrapper equivalence, errors, competition gating and event emission. For persistence claims, read the saved database through a fresh reader; a returned clone does not prove a write. Use ofm-test-reviewer for regression effectiveness evidence.

End-to-end, against a running instance:

bash
# tools/list — confirm the tool appears (and does NOT in competition mode if gated)
curl -X POST http://localhost:3001/mcp -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

# call it
curl -X POST http://localhost:3001/mcp -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"your_tool","arguments":{}}}'

docs/MCP_SERVER.md §"Quick Start" has the full launch command.


Checklist

  • Implementation in the right tools_impl/ module, calling the shared _internal function
  • Route registered in build_tool_router()
  • Entry added to tool_catalog() with an existing category string
  • game-state-changed emitted if and only if the tool mutates state
  • Competition-mode gating decided; config.rs disabled_tools() updated if needed
  • Information-visibility limits respected for other teams' players
  • docs/MCP_SERVER.md table row added and both tool counts updated
  • Builds and lints clean with --features mcp
  • Verified via tools/list and tools/call against a running instance

© openfootmanager, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/add-mcp-tool of openfootmanager/openfootmanager.

Open the folder on GitHubat commit 90b05fd

Compare with similar skills

Add MCP Tool next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Add MCP Tool compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Add MCP Tool this skillopenfootmanager/openfootmanager1.1k—~1.6kAutomated safety check: PassGPL-3.0
Memorywhalewuisabel-gif/MemWhale154—~765Automated safety check: PassMIT
Helmor Debug Operatedohooo/helmor1.3k—~6.6kAutomated safety check: PassApache-2.0
Memorywhale Evidencewuisabel-gif/MemWhale154—~459Automated safety check: PassMIT
Editor Toolsdotnetdreamer/open-screenshot-generator125—~3.8kAutomated safety check: PassMIT
Change Maple Agent ModeMaplePrivacyLabs/Maple100—~5.5kAutomated safety check: NotesMIT

Similar skills

  • Memorywhale

    wuisabel-gif/MemWhale

    Query and write durable debugging memory recorded by MemoryWhale.

    154 GitHub stars~765 tokensUpdated 2 days ago
    Agent WorkflowsAuto-check passed
  • Operate, reproduce, and debug a running local Helmor desktop development build through the Tauri MCP bridge.

    1.3k GitHub stars~6.6k tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • Memorywhale Evidence

    wuisabel-gif/MemWhale

    Use MemoryWhale debugging evidence when the user requests recall or a recurring failure may have relevant recorded history.

    154 GitHub stars~459 tokensUpdated 2 days ago
    Agent WorkflowsAuto-check passed
  • Editor Tools

    dotnetdreamer/open-screenshot-generator

    Drives the live Open Screenshot Generator editor tool by tool over MCP, using osg mcp to expose the design tools (artboards, elements, backgrounds, fonts, the asset libraries, templates, App Preview…

    125 GitHub stars~3.8k tokensUpdated 2 days ago
    Agent WorkflowsAuto-check passed
  • Change Maple Agent Mode

    MaplePrivacyLabs/Maple

    Develop and debug Maple Agent Mode across its React UI, Tauri command and event bridge, account-scoped native runtime, embedded Goose integration, OpenSecret provider, developer tools, permissions…

    100 GitHub stars~5.5k tokensUpdated today
    Agent WorkflowsAuto-check: notes
  • Solomd

    zhitongblog/solomd

    Read, search, edit, and version-control any folder of Markdown notes via the SoloMD MCP server.

    1.2k GitHub stars~2k tokensUpdated today
    Knowledge ManagementAuto-check passed

More from openfootmanager/openfootmanager

  • Add UI String

    openfootmanager/openfootmanager

    Add or change any text a player can see, in every locale the game ships in.

    1.1k GitHub stars~2.6k tokensUpdated 2 days ago
    Auto-check passed
  • Add Domain Field

    openfootmanager/openfootmanager

    Add a field to a domain type so it survives save/load. An agent skill from openfootmanager/openfootmanager.

    1.1k GitHub stars~1.7k tokensUpdated 2 days ago
    Auto-check passed
  • Add Tauri Command

    openfootmanager/openfootmanager

    Expose new backend behaviour to the frontend over Tauri IPC.

    1.1k GitHub stars~1.6k tokensUpdated 2 days ago
    Auto-check passed
  • New UI Surface

    openfootmanager/openfootmanager

    Build a new frontend component, panel, dashboard tab, or screen that matches the Matchday design language, works in light and dark, is keyboard and screen-reader accessible, reuses existing…

    1.1k GitHub stars~1.9k tokensUpdated 2 days ago
    Auto-check passed
  • Preflight

    openfootmanager/openfootmanager

    Verify a pull request with the frontend scripts, default and MCP backend tests and clippy, formatting, architecture checks and review evidence.

    1.1k GitHub stars~1.3k tokensUpdated 2 days ago
    Auto-check passed

Categories

Questions about Add MCP Tool

What does Add MCP Tool do?

Add a tool to the MCP server that lets AI agents play OpenFoot Manager. Add MCP Tool is an agent skill from openfootmanager/openfootmanager. Add a tool to the MCP server that lets AI agents play OpenFoot Manager.

When should I use Add MCP Tool?

Add MCP Tool fits situations like: tasks that involve MCP servers.

How do I install Add MCP Tool in Claude Code?

Run `npx skills add openfootmanager/openfootmanager --skill add-mcp-tool -a claude-code`. Or copy the skill folder (.claude/skills/add-mcp-tool in openfootmanager/openfootmanager) into .claude/skills/add-mcp-tool in your project. Claude Code loads it when a task matches its description.

How do I install Add MCP Tool in Codex?

Run `npx skills add openfootmanager/openfootmanager --skill add-mcp-tool -a codex`. Or copy the skill folder (.claude/skills/add-mcp-tool in openfootmanager/openfootmanager) into .agents/skills/add-mcp-tool in your project. Codex loads it when a task matches its description.

Can I use Add MCP Tool in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add openfootmanager/openfootmanager --skill add-mcp-tool -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-mcp-tool, .gemini/skills/add-mcp-tool, .github/skills/add-mcp-tool and .opencode/skills/add-mcp-tool in your project.

What does Add MCP Tool need to run?

Going by SKILL.md and its folder, Add MCP Tool needs the command-line tools its instructions call (cargo and curl). Its frontmatter pre-approves these tools: Read, Edit, Write, Grep, Glob, Bash(cargo build*), Bash(cargo test*), Bash(cargo clippy*).

Does Add MCP Tool access the network?

SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Add MCP Tool safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Add MCP Tool use?

Add MCP Tool is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Add MCP Tool use?

About 1.6k tokens (SKILL.md is roughly 6.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Add MCP Tool?

Skills that share tags, products or a category with Add MCP Tool: Memorywhale (wuisabel-gif/MemWhale, 154 stars), Helmor Debug Operate (dohooo/helmor, 1.3k stars), Memorywhale Evidence (wuisabel-gif/MemWhale, 154 stars) and Editor Tools (dotnetdreamer/open-screenshot-generator, 125 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Add MCP Tool?

openfootmanager (a GitHub organization) maintains it in openfootmanager/openfootmanager, which has 1,135 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 7, 2026.

Source: openfootmanager/openfootmanager on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.