Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 17 additions & 7 deletions a2a/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,25 @@ For the use case the old `engine::*` hard floor hid, use the `introspect` worker
### CLI flags

```text
--engine-url <URL> WebSocket URL of the iii engine (default ws://localhost:49134)
--base-url <URL> Public origin advertised in the agent card. The card is served
at <base-url>/a2a. Default: http://localhost:3111
--rbac-tag <TAG> Forward an `x-iii-rbac-tag` header on the worker WebSocket
upgrade. iii-worker-manager's `auth_function_id` reads
this tag to apply policy.
--debug Verbose logging
--engine-url <URL> WebSocket URL of the iii engine (default ws://localhost:49134)
--base-url <URL> Public origin advertised in the agent card. The card is served
at <base-url>/a2a. Default: http://localhost:3111
--agent-name <NAME> Agent card `name` (default: iii-engine)
--agent-description <TEXT> Agent card `description`
--provider-org <ORG> AgentProvider.organization (default: iii)
--provider-url <URL> AgentProvider.url (default: https://github.com/iii-hq/iii)
--docs-url <URL> AgentCard.documentationUrl
(default: https://github.com/iii-hq/workers/tree/main/a2a)
--rbac-tag <TAG> Forward an `x-iii-rbac-tag` header on the worker WebSocket
upgrade. iii-worker-manager's `auth_function_id` reads
this tag to apply policy.
--debug Verbose logging
```

Empty `--provider-org` or `--provider-url` omits the `provider` object
from the card (A2A v0.3 requires both fields when the object is present).
Empty `--docs-url` omits `documentationUrl`.

## Local testing

A2A has no standard client inspector like MCP does. Use curl. Full smoke
Expand Down
28 changes: 28 additions & 0 deletions mcp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,3 +225,31 @@ your `auth_function_id` can scope policy on it.

Result is wrapped as `{ content: [{ type: "text", text: ... }] }` per MCP
spec. Errors surface as `isError: true`.

## MCP 2025-06-18 spec coverage

Beyond the core `tools/list` + `tools/call` path, this worker speaks:

- **Pagination** on `tools/list`, `resources/list`, `prompts/list` —
opaque `cursor` round-trip per spec.
- **`completion/complete`** — argument autocomplete for prompt args
(e.g. language enum on `register-function`).
- **`logging/setLevel`** + **`notifications/message`** — per-session
level bridged into `tracing`.
- **`resources/subscribe`** + **`resources/unsubscribe`** +
**`notifications/resources/updated`** — change notifications when
`iii.list_functions()` / `list_workers()` / `list_triggers()` shift
for a subscribed URI.
- **`resources/templates/list`** — templates for `iii://functions/{id}`,
`iii://workers/{id}`, `iii://triggers/{id}`.
- **Tool annotations + outputSchema + structured content** — tools
surface `title`, `annotations` (`readOnlyHint`, `destructiveHint`,
`idempotentHint`, `openWorldHint`), and `outputSchema` from
`FunctionInfo.metadata.mcp.*`.
- **Progress + cancellation** — `_meta.progressToken` on `tools/call`
emits `notifications/progress`; `notifications/cancelled` flips a
per-request cancel channel and short-circuits the in-flight trigger.

Server-to-client requests (`sampling/createMessage`,
`elicitation/create`) and Streamable HTTP SSE remain on the Phase 2b/2c
roadmap.
Loading