Skip to main content

CLI for Merge Agent Handler — search, discover, and execute thousands of tools

Project description

PyPI version Python versions License: MIT

merge-cli

CLI for Merge Agent Handler — search, discover, and execute thousands of tools.

Designed for AI agents (Claude Code, Cursor) that need progressive tool discovery without clogging the context window.

Install

pipx install merge-api   # recommended (isolated env)
pip install merge-api     # alternative

Quick Start

1. Configure credentials

merge configure

Or set environment variables:

export MERGE_AH_API_KEY="pk_..."
export MERGE_AH_TOOL_PACK_ID="your-tool-pack-uuid"
export MERGE_AH_REGISTERED_USER_ID="your-registered-user-id"

2. Search for tools

merge search-tools "send a Slack message"
{
  "tools": [
    {
      "name": "slack__post_message",
      "description": "Post a message to a Slack channel",
      "input_schema": { "type": "object", "properties": { "channel": { "type": "string" }, "text": { "type": "string" } } },
    }
  ],
  "total_results": 1,
  "hint": "To execute: merge execute-tool <tool_name> '<json_params>'"
}

3. Execute a tool

merge execute-tool slack__post_message '{"input": {"channel": "#general", "text": "Hello!"}}'
{
  "result": { "ok": true, "ts": "1234567890.123456" },
  "status": "success",
  "hint": "Tool executed successfully."
}

Commands

Command Description
merge search-tools <intent> Semantic search for tools by natural language (returns compact schemas)
merge execute-tool <tool> <params> Execute a tool with JSON parameters
merge list-tools List all available tools (compact by default)
merge get-tool-schema <tool> Get the full input schema for a specific tool
merge configure Interactive credential setup
merge setup <target> Generate AI agent config (claude-code, cursor, agents-md)
merge update Self-update to latest version

Common Options

All API commands accept these flags:

Flag Env Variable Description
--api-key MERGE_AH_API_KEY API key
--tool-pack-id MERGE_AH_TOOL_PACK_ID Tool pack ID
--registered-user-id MERGE_AH_REGISTERED_USER_ID Registered user ID

| --base-url | MERGE_AH_BASE_URL | Base URL override |

Configuration

Priority (highest to lowest):

  1. CLI flags: --api-key, --tool-pack-id, --registered-user-id, --base-url
  2. Environment variables: MERGE_AH_API_KEY, MERGE_AH_TOOL_PACK_ID, MERGE_AH_REGISTERED_USER_ID, MERGE_AH_BASE_URL
  3. Config file: ~/.merge/config.json

Example config file:

{
  "agent_handler": {
    "api_key": "pk_...",
    "tool_pack_id": "your-tool-pack-uuid",
    "registered_user_id": "your-registered-user-id",
    "base_url": "https://ah-api.merge.dev"
  }
}

Output Format

All commands output JSON to stdout. Warnings go to stderr.

Success response:

{
  "result": { ... },
  "status": "success",
  "hint": "Tool executed successfully."
}

Error response:

{
  "result": null,
  "status": "error",
  "error_type": "api_error",
  "message": "Description of what went wrong",
  "hint": "Suggested next step"
}

Error types: config_error, api_error, network_error, invalid_params, not_found, reauth_required, billing_limit_reached

Usage with AI Agents

The fastest way to set up any AI agent is the merge setup command:

Claude Code

merge setup claude-code

This appends merge CLI instructions to your CLAUDE.md (or creates it if it doesn't exist) and adds Bash(merge *) to .claude/settings.json. Safe to run multiple times — it won't duplicate content.

Cursor

merge setup cursor

This appends merge CLI instructions to your .cursorrules (or creates it if it doesn't exist).

Any AI Agent (AGENTS.md)

merge setup agents-md

This appends merge CLI instructions to your AGENTS.md (or creates it if it doesn't exist) — the cross-tool standard supported by Claude Code, Cursor, Codex, Windsurf, and more.

Manual Setup

If you prefer manual configuration, add this to your agent's system prompt or project instructions:

For any task involving third-party services (Slack, Jira, GitHub, Salesforce, etc.),
use the `merge` CLI. Do not call APIs directly.

Workflow:
1. merge search-tools "<intent>"        — find tools (returns compact schemas)
2. merge execute-tool <tool> '<json>'   — execute with JSON params

Troubleshooting

Problem Solution
config_error Run merge configure or set MERGE_AH_* environment variables
api_error with 401 Check your API key. Ensure test keys are used with test users and production keys with production users
not_found Use merge search-tools <intent> or merge list-tools to discover available tools
reauth_required The user needs to re-authenticate the connector in the Merge dashboard
billing_limit_reached Upgrade the account at the billing URL in the error response
network_error Check your internet connection and --base-url setting

Development

git clone https://github.com/merge-api/merge-cli.git
cd merge-cli
pip install -e ".[dev]"
pytest                    # run tests
ruff check .              # lint
ruff format --check .     # format check

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

merge_api-0.2.0.tar.gz (20.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

merge_api-0.2.0-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file merge_api-0.2.0.tar.gz.

File metadata

  • Download URL: merge_api-0.2.0.tar.gz
  • Upload date:
  • Size: 20.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for merge_api-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3623f3afffb593f7609bd5b91f3c65135aa6a6e557a3bd227f81ac62075bf6d8
MD5 e62ef87dbc26a273f51a47ef2c1d3f7c
BLAKE2b-256 e3a7d4197439d95b1f37dfaed3795be9af74d457b313ae39cd29383ad1457cd0

See more details on using hashes here.

Provenance

The following attestation bundles were made for merge_api-0.2.0.tar.gz:

Publisher: publish.yml on merge-api/merge-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file merge_api-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: merge_api-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 20.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for merge_api-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3dd70f2674d05e4f83ada721443450ea14807feec0ad10092e16f10dc15c9055
MD5 0c28f8d167b2409a7e3fc101080af47f
BLAKE2b-256 ebd2ee57d83dc7b97b02286e854847d8f2d8823f07b44e734a0521ff837fd025

See more details on using hashes here.

Provenance

The following attestation bundles were made for merge_api-0.2.0-py3-none-any.whl:

Publisher: publish.yml on merge-api/merge-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page