SDK v1.10.0
Highlights
You can now resolve field names to FieldMetadata (including FieldId) using FieldResolver.find_field(), which is what you need for write operations like update_field_value(). Unlike get() which silently picks the first match for ambiguous names, find_field() raises AmbiguousFieldError to prevent accidentally updating the wrong field. Skill descriptions across all three plugins have been rewritten for clearer triggering boundaries when multiple plugins are installed.
What's New
FieldResolver.find_field(name)method — resolves field names toFieldMetadatafor write operationsAmbiguousFieldErrorexception — raised whenfind_field()encounters ambiguous field names; includes candidate IDs and disambiguation hints
Changes
- Plugin skills: Clarified triggering boundaries across MCP, CLI, and SDK plugins — MCP workflows skill is now explicitly primary when MCP tools are available, CLI skill defers to MCP for general CRM tasks
- Plugin skills: Pipeline-history skill rewritten with MCP tool examples (was raw bash), query-language skill no longer depends on workflows-guide resource
- Plugin skills: SDK skill now documents
FieldResolver.find_field()patterns for read vs. write field resolution
Quick Install
SDK only:
pip install affinity-sdkSDK + CLI:
pipx install "affinity-sdk[cli]"MCP Server for Claude Desktop (easiest - MCPB bundle):
- Install CLI:
pipx install "affinity-sdk[cli]" - (Optional) Pre-configure API key:
xaffinity config setup-key- If skipped, Claude Desktop will prompt for your API key during install
- Install xaffinity MCP in Claude Desktop (download and double-click)
Other MCP clients (Cursor, Windsurf, VS Code, etc.) require manual configuration - see MCP docs.