Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/wise-vision/ros2_mcp/agents-mdgit clone --depth 1 https://github.com/wise-vision/ros2_mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/wise-vision/ros2_mcp/agents-md)<a href="https://agentmods.dev/instructions/wise-vision/ros2_mcp/agents-md"><img src="https://agentmods.dev/badge/instructions/wise-vision/ros2_mcp/agents-md.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00665 | $0.00665 |
| Opus 5 | $0.00332 | $0.00332 |
| Sonnet 5 | $0.00133 | $0.00133 |
| Haiku 4.5 | $0.00067 | $0.00067 |
Grade A, and why
ros2_mcp AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 53 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Agent instructions
This repo is a Python MCP server for ROS 2 (Humble/Jazzy). The packaged entrypoint is mcp_ros_2_server (see pyproject.toml).
Project layout
server/— MCP server (server.py), tool handlers (tools_ros2.py), ROS 2 logic (ros2_manager.py), prompts (prompts_ros2.py), transports (transport.py).tests/—pytesttests (often mocking ROS 2 nodes).Dockerfile— container build for running the server with ROS 2.server.json— MCP server manifest (runtime + env var knobs).
Dev setup (preferred)
Use uv (deps are pinned in uv.lock):
uv venvuv sync --dev
Avoid editing uv.lock manually.
Running locally
The server requires a sourced ROS 2 environment before start (so rclpy works).
- Stdio (default):
uv run mcp_ros_2_server - SSE:
uv run mcp_ros_2_server --transport sse(binds127.0.0.1:8123)
Custom prompts can be toggled via pyproject.toml [tool.mcp_ros_2], env vars (MCP_CUSTOM_PROMPTS, MCP_PROMPTS_LOCAL, MCP_PROMPTS_PATH, MCP_PROMPTS_MODULE) or CLI flags (--custom-prompts, --prompts-local, --prompts-path, --prompts-module) — see server/server.py.
Tests
Tests require ROS 2 Python libs (rclpy) and some message/interface packages (see CI in .github/workflows/server_tests.yml).
Typical run inside a ROS 2 environment:
source /opt/ros/<distro>/setup.shexport PYTHONPATH=.:/opt/ros/<distro>/lib/python3.*/site-packagesuv run pytest
Adding a tool
- Implement a
ToolHandler(usually inserver/tools_ros2.py) and returnTextContent/ImageContentoutputs. - Register it in
server/server.pyviaadd_tool_handler(...). - Add/adjust
pytestcoverage undertests/.
Adding a prompt
- Implement a
BasePromptHandler(template-based) inserver/prompts_ros2.py. - Register it in
server/server.pyviaadd_prompt_handler(...). - For custom prompt authoring, also see
docs/CREATE_PROMPT.md.
Docker
Build:
docker build -t ros2_mcp:jazzy --build-arg ROS_DISTRO=jazzy .
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 53 lines · 665 tokens per session scan A 8bf1baa53898
ros2_mcp AGENTS.md is an instructions file published in the GitHub repository wise-vision/ros2_mcp (86 stars, last pushed 15d ago), licensed MPL-2.0. It adds 665 tokens to every session, about $0.0033 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
python-sdk AGENTS.md
AGENTS.md instructions for modelcontextprotocol/python-sdk, covering development guidelines, note for ai agents, branching model, package management and code quality.
nextcloud-mcp-server CLAUDE.md
Claude Code instructions for cbcoutinho/nextcloud-mcp-server, covering claude.md, coding conventions, async/await patterns, type hints and code quality.
python-sdk CLAUDE.md
Claude Code instructions for modelcontextprotocol/python-sdk, a project described as: The official Python SDK for Model Context Protocol servers and clients.
mcp-zen-of-languages mandatory-python-312.instructions.md
Instructions for Anselmoo/mcp-zen-of-languages, covering python 3.12+ syntax updates summary, changes made, ✅ updated files, syntax changes and before (python 3.9 style).
naja-scope CLAUDE.md
Instructions for najaeda/naja-scope: When writing code that talks to najaeda — inside src/najascope/ or in throwaway exploration scripts — always go through from najaeda import naja (the raw naja.so binding: NLUniverse, NLDB, SNL objects) and never through najaeda.netlist (the high-level loadverilog/loadsystemverilog/…
microsoft-planner-mcp python.instructions.md
Use when writing or modifying Python source code. Covers module layout, async patterns, imports, and framework conventions for FastMCP + Microsoft Graph SDK.