Install an agent plugin¶
Claude Code, OpenAI Codex CLI, and Google Antigravity CLI are equal deployment targets. Each native plugin launches the same pinned PyPI release. Add 136 patent + trademark + adjacent-IP MCP tools to any of the three clients by default. Private/local deployments expose up to 234 tools when the corresponding credentials are in the environment.
The package metadata is maintained once in satchel.yaml and generated
for all three hosts with Satchel. Do not edit the generated marketplace or
plugin manifests directly. Contributors can regenerate and verify them with:
uvx --from git+https://github.com/parkerhancock/satchel@9c9117a3be6810ad847f3b27f4ab658465f77b2f satchel generate .
uvx --from git+https://github.com/parkerhancock/satchel@9c9117a3be6810ad847f3b27f4ab658465f77b2f satchel check . --release --host
The plugin ships only the MCP server: no skill, no agents, no
hooks. The MCP tools' in-schema descriptions already carry the
cross-tool routing guidance a skill would otherwise centralize (e.g.
search_patents_global tells the agent "PREFER search_patent_publications
for US patents"; get_epo_cql_help is itself a tool).
Install uv¶
uv needs to be on PATH. Each plugin's MCP server spawns via uvx,
which handles the Python runtime (fastmcp and friends) in a managed
environment so you don't have to pip install anything.
# install uv if you don't have it: one-liner from astral.sh
curl -LsSf https://astral.sh/uv/install.sh | sh
Install in Claude Code¶
Claude Code's plugin install goes through a marketplace: a small
catalog manifest that lists one or more plugins. This repo ships its
own single-plugin marketplace at .claude-plugin/marketplace.json,
with the plugin itself living in a subdirectory
(plugins/patent-client-agents/) that the schema requires.
Run these inside a Claude Code session (slash commands, not shell):
/plugin marketplace add parkerhancock/patent-client-agents
/plugin install patent-client-agents@patent-client-agents
/reload-plugins
Install in OpenAI Codex CLI¶
Run these in your shell:
codex plugin marketplace add parkerhancock/patent-client-agents
codex plugin add patent-client-agents@patent-client-agents
The repository marketplace at .agents/plugins/marketplace.json
points Codex at plugins/patent-client-agents/. That package declares
the server in .codex-plugin/plugin.json and .mcp.json. Start a new
Codex session after installation.
Install in Google Antigravity CLI¶
Antigravity installs a plugin from a local or remote directory. Clone the repository, then install its shared plugin package:
git clone --depth 1 https://github.com/parkerhancock/patent-client-agents.git
agy plugin install ./patent-client-agents/plugins/patent-client-agents
Antigravity reads plugin.json and mcp_config.json from that package.
Start a new agy session after installation.
What the packages do¶
For Claude Code specifically:
/plugin marketplace add parkerhancock/patent-client-agentsclones this repo into~/.claude/plugins/marketplaces/, parses.claude-plugin/marketplace.json, and registers the marketplace under the name it declares (patent-client-agents)./plugin install patent-client-agents@patent-client-agentsresolves thepatent-client-agentsplugin from that marketplace (the redundant@patent-client-agentssuffix is the marketplace name, not the plugin name), links it into~/.claude/plugins/, and registers the MCP server declared inplugins/patent-client-agents/.claude-plugin/plugin.json./reload-pluginstells Claude Code to pick up the newly-registered plugin in the current session.- On first MCP use,
uvxfetchespatent-client-agents[mcp]from PyPI (not from the cloned repo: the plugin manifest pinsuvx --from patent-client-agents[mcp]==0.28.0 patent-client-agents-mcp) into a managed environment and launches the server. The first run takes ~30 seconds while ~100 packages download; subsequent runs are fast because uv caches the resolved environment.
Expected output after install + reload:
0 skills is the intended state: see the package model above.
Update¶
When a new plugin version lands on GitHub:
The first command pulls the latest marketplace commit (which includes
any plugin-manifest changes). /reload-plugins then re-reads the
registered plugin's manifest. If the PyPI version referenced by
uvx --from patent-client-agents[mcp] changed, the next MCP call
rebuilds the uv-managed env.
If you need to force a clean reinstall:
/plugin uninstall patent-client-agents@patent-client-agents
/plugin install patent-client-agents@patent-client-agents
/reload-plugins
For Codex, refresh and reinstall from the configured marketplace:
codex plugin marketplace upgrade patent-client-agents
codex plugin remove patent-client-agents
codex plugin add patent-client-agents@patent-client-agents
For Antigravity, update the clone and reinstall the directory:
git -C ./patent-client-agents pull --ff-only
agy plugin uninstall patent-client-agents
agy plugin install ./patent-client-agents/plugins/patent-client-agents
Remove¶
/plugin uninstall patent-client-agents@patent-client-agents
/plugin marketplace remove patent-client-agents
Configure local sources¶
Follow Configure local source access for credentials and local corpus builders. Restart the agent client afterward so its MCP subprocess receives the updated environment.
Verify¶
List MCP tools from within the installed agent client:
Expect patent-client-agents with 136 tools by default. Local/private
servers expose up to 234 tools when all env-gated families are configured
with their corresponding credentials. Then complete
your first research task, a live patent lookup
that works without an API key or local corpus.
Troubleshooting¶
uvx: command not found: install uv.
/mcp shows the server as "failed to start": open the logs pane
and look for stderr output. Common causes: offline during first
install (uvx can't reach PyPI), or an ancient macOS Python build
error (upgrade uv to latest).
Cold start takes too long: subsequent runs are ~1s. If every
session takes 30s, something is evicting uv's cache. Check that
~/.cache/uv/ is persistent.
Plugin shows 0 tools after install: In Claude Code, try
/reload-plugins. In Codex or Antigravity, start a new session.