Repository navigation
v0.71.0
Getting started
- Sign up free at studio.poly.ai
- Install:
uv tool install polyai-adk - Set up:
poly setup(signs you in, saves an API key, installs shell completion and AI coding-agent skills)
Already installed? Run poly update to get this release and the latest skills.
v0.71.0 (2026-10-14)
This release is published under the Apache-2.0 License.
Features
Summary
MCP servers can now be pulled, diffed and pushed like any other resource. They live in config/mcp.yaml, under mcp_servers.
Motivation
MCP configuration could only be managed in the Agent Studio UI, so it had no version control, no diffs and no way to review or promote changes alongside the rest of an agent.
Changes
- New
MCPServerresource, keyed byprovider_idin the YAML: the catalogue id for catalogue providers, or any short key for a custom server. Server ids never appear on disk. A server with noprovider_idis keyed ascustom:<id>, matching how Agent Studio shows it. -authsupports a secret in a header or query parameter, or OAuth client credentials. Secrets are referenced by name only; their values are never pulled or pushed. -enabled_functionskeeps the platform's meaning: leaving the key out enables every tool on the server, and[]enables none. - Create and update sendupsert_mcp_server; delete sendsdelete_mcp_server. - An upsert replaces the whole server, so the platform's tool discovery state (last_discovered_at,last_discovered_tool_count) is kept off disk and carried from the last pull into each upsert, rather than being cleared by a push. - Saved MCP profiles aren't synced. Agent Studio keeps them so a disconnected provider can be reconnected, and they hold
the same settings as a server. - Local validation matches the platform: requiredprovider_idandurl,http(s)URLs, exactly one auth method with its required fields (OAuth needsclient_id,client_secret_nameandtoken_url),timeoutfrom 1 to 30 seconds, unique non-emptyenabled_functions. - A user without read access to MCP config gets nothing for it locally, same as API integrations. - Docs: a new resource page,poly docs mcp, and entries in the resource andpoly docsindexes and the workflow skill's project tree.
Test strategy
- Added/updated unit tests - [x] Manual CLI testing (
poly <command>) - [x] Tested against a live Agent Studio project - [ ] N/A (docs, config, or trivial change)
Against a test project on us-1: - A custom server added in Agent Studio (header auth, two enabled tools) pulled into config/mcp.yaml with its custom:<number> provider_id. - Pushed three more servers from the ADK, one per remaining auth shape: the Tavily catalogue provider with query-parameter auth, a custom server with OAuth client credentials, and a server with no auth and enabled_functions: []. All four appeared in Agent Studio as expected. - After the push, poly status reported no changes, so the pull that follows a push round-trips cleanly.
New MCPServerTests in resources_test.py cover projection parsing, YAML round-trips, protos, validation, discovery, the custom:<id> fallback, and profiles being ignored on pull. PushProjectTest checks that an edited server is upserted with its discovery state. The test_project fixture gains config/mcp.yaml, and the existing fixture-integrity, no-change push and slim-projection tests now cover MCP too.
Checklist
-
ruff check .andruff format --check .pass - [x]pytestpasses - [x] No breaking changes to thepolyCLI interface (or migration path documented) - [x] PR title follows conventional commits, and its type matches the change (feat:for anything user-visible; see CONTRIBUTING.md) - [x] User-facing changes are reflected indocs/docs/,src/poly/docs/(resource shapes) andskills/
🤖 Generated with Claude Code
Co-authored-by: Claude Opus 5.5 (1M context) noreply@anthropic.com
Detailed Changes: v0.70.1...v0.71.0