Skip to main content
Every Particle MCP tool belongs to exactly one exposure category. Categories are the unit of tools/list advertisement: some advertise on a bare connection (default), others only when you ask for them (opt-in). But the advertisement is just a menu — every public tool is always callable by name, no matter what was advertised. Discovery is free; execution is metered and plan-gated.

Categories

A bare connection advertises system plus every default category. The five opt-in categories advertise only when selected.

Selecting categories

The selector lives on the connection — it shapes what tools/list advertises, nothing else.

Query parameters

Append ?include= (and/or ?exclude=) to the connection URL. Values are comma-separated category names, case-insensitive.
  • include=all selects every declared category.
  • The active set is computed as defaults ∪ include − exclude.
  • Unknown tokens are ignored — a typo in a selector never errors tools/list; you just see the default surface for that token.
  • system is irremovableexclude=system is silently ignored, so the discovery meta-tools never disappear.

Headers

Clients that can’t append query strings can send the same values as headers:
The query parameter wins when both are present (query > header precedence), resolved independently for each direction (include and exclude).

Selecting exact tools

When a category is still too broad — a curated workflow that needs exactly four tools, say — the ?tools= selector pins tools/list to a comma-separated list of tool names:
  • A non-empty ?tools= selection overrides include/exclude entirely.
  • Named tools advertise regardless of category exposure — an opt-in tool named here shows up without its category.
  • The system meta-tools are always advertised alongside the selection, so discovery never disappears.
  • Unknown names are ignored; if every name is unknown, the selection is empty and the connection falls back to the category selectors above (defaults ∪ includeexclude).
  • Same header fallback (X-Particle-Tools) and query-over-header precedence as the category selectors.
  • And the same contract: this shapes advertisement only — every public tool stays callable by name.
This is the mechanism behind the pre-built skill bundles: each skill embeds a ?tools= URL so the agent sees only the tools its workflow needs.

Every public tool is callable by name

The selector only governs the menu (tools/list). tools/call is selector-independent: every public tool stays executable by name whether or not it was advertised on your connection. That separation is deliberate:
  • Discovery is free. A bare connection can learn the entire surface via particle_catalog and call any of it — no reconnection, no selector change.
  • Execution is metered and plan-gated. Calling a tool runs the same billing meter, pricing gate, and premium-tier gate regardless of how you reached it. Advertisement changes visibility, never entitlement.
So the opt-in categories exist to keep a default agent’s tool list focused, not to lock anything away. If your harness lets you call tools it didn’t see advertised, just call them. If it doesn’t, use the meta-tools below.

Meta-tools

Two always-on system tools make the surface self-expanding.

particle_catalog

Browse the full catalog. No arguments → the category menu; with a category → full input schemas for that category’s tools.

particle_call

Dispatch any public tool by name — the fallback for harnesses that block un-advertised tool names.

particle_catalog

particle_call

Identical metering and plan gating apply whether you call a tool directly or through particle_call.

Next steps

Tool reference

Every tool, grouped by category, with inputs and outputs.

Quickstart

Connect a client and run a first call.