Skip to content

SDK v1.10.0

Choose a tag to compare

@github-actions github-actions released this 05 Apr 11:23
· 53 commits to main since this release

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 to FieldMetadata for write operations
  • AmbiguousFieldError exception — raised when find_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-sdk

SDK + CLI:

pipx install "affinity-sdk[cli]"

MCP Server for Claude Desktop (easiest - MCPB bundle):

  1. Install CLI: pipx install "affinity-sdk[cli]"
  2. (Optional) Pre-configure API key: xaffinity config setup-key
    • If skipped, Claude Desktop will prompt for your API key during install
  3. Install xaffinity MCP in Claude Desktop (download and double-click)

Other MCP clients (Cursor, Windsurf, VS Code, etc.) require manual configuration - see MCP docs.

Full documentation | MCP Server docs