MCP Integration Reference
Injected parameters & metadata

Injected parameters and metadata

On tools/call, MCP allows an optional _meta object on params (next to name and arguments). Agentsyx may add or merge keys there before your MCP server handles the request.

Stable injection: openai/subject

When an anon id is resolved, the platform ensures params._meta exists and sets:

  • _meta["openai/subject"] — The resolved anon id string (stable identifier used across MCP / Apps SDK flows).

Resolution order (simplified):

  1. If the request includes an api_key body field (e.g. external clients), that value is used as the anon id when valid.
  2. Otherwise, if a Clerk user id is available, the platform looks up (or creates) the user’s linked api/... anonymous identity and uses that anon id.
  3. If neither yields an identity, no openai/subject is injected (see Anonymous & unauthenticated users).

Downstream tools can read params._meta?.["openai/subject"] to key per-user state. Do not treat it as proof of payment or plan tier—credits and subscriptions are enforced upstream.

Other _meta fields

Tools and resources may carry vendor-specific _meta (e.g. openai/outputTemplate, widget URIs). Those originate from your MCP server’s tool definitions or the host. Agentsyx forwards the JSON-RPC body and only merges the injections above into params._meta.

Headers vs body

Authorization and other HTTP headers are separate from the JSON-RPC params object. User identity for billing is not proven by _meta alone—see Inputs to downstream servers for headers your MCP URL may receive.