
List Pylon accounts with optional pagination.
Get a specific Pylon account by ID with full details.
Create a new Pylon account with name, domain, and optional tags. Use list_tags to find valid tag values before assigning them.
Update an existing Pylon account's name, domain, or tags. Use searchaccounts to find accountid and list_tags for valid tag values.
Delete a Pylon account by ID.
Search Pylon accounts with filters for query, domain, or tags.
List Pylon contacts with optional pagination.
Get a specific Pylon contact by ID with full details.
Create a new Pylon contact with name, email, phone, and optional account association. Use searchaccounts or listaccounts to find a valid account_id before associating.
Update an existing Pylon contact's name, email, phone, or account association. Use searchcontacts to find contactid and searchaccounts for a valid accountid.
Delete a Pylon contact by ID.
Search Pylon contacts with filters for query, email, account, or tags.
List Pylon issues within a time range. Requires starttime and endtime in ISO 8601 format.
Get a specific Pylon issue by ID with full details.
Create a new Pylon issue. Requires title and bodyhtml. Without destinationmetadata the issue is internal and replytoissue will reject it. For a customer-facing issue pass destinationmetadata: 'customerportal' needs nothing else, 'email' also needs a sender address and an accountid. Use searchaccounts for accountid, searchusers for assigneeid, listteams for team_id.
Update an existing Pylon issue's title, body, state, priority, assignee, team, or tags. Use searchissues or listissues to find issueid, searchusers or listusers for assigneeid, listteams for teamid, and list_tags for valid tag values.
Delete a Pylon issue by ID.
Search Pylon issues with filters for state, priority, account, assignee, team, or tags.
Reply to a Pylon issue. Sends a customer-visible response, so it only works on issues with a customer channel: an internal issue is rejected with 'You cannot reply to an internal issue' -- use addissuenote there instead. Use searchissues for issueid and getissuemessages for message_id; both required.
Create a thread on a Pylon issue for internal notes. Returns threadid for use with addissue_note.
Add an internal note to a Pylon issue. Notes are not visible to customers. Use searchissues to find issueid, and createissuethread first if the note belongs in a specific thread.
Get all messages for a Pylon issue, including replies and internal notes.
List Pylon knowledge bases available to this account, with optional pagination (cursor only; this endpoint has no limit param).
List articles within a Pylon knowledge base with optional pagination. Use listknowledgebases to find knowledgebaseid.
Get a specific Pylon knowledge base article by ID with full details. Use listknowledgebases for knowledgebaseid and listarticles for articleid.
Update the draft content of a Pylon knowledge base article (title, bodyhtml, slug, collection, visibilityconfig). Updates the default-language article only. Never affects the live published version. Use listknowledgebases for knowledgebaseid and listarticles or getarticle for article_id. Requires at least one content field.
Update a Pylon knowledge base article and push the change to its live published version (title, bodyhtml, slug, collection, visibilityconfig). Updates the default-language article only. Use listknowledgebases for knowledgebaseid and listarticles or getarticle for article_id. Requires at least one content field.
Create a Pylon knowledge base article. Requires title, bodyhtml and authoruserid. Created as a draft unless ispublished is true. Use listknowledgebases for knowledgebaseid and listusers for authoruser_id.
Delete a Pylon knowledge base article. Use listknowledgebases for knowledgebaseid and listarticles for articleid.
List all Pylon tags. This endpoint is not paginated: it returns every tag, so limit only trims the response. Use the returned values for the tags parameter on searchissues and searchaccounts.
Get a specific Pylon tag by ID with full details.
Create a new Pylon tag with value, objecttype, and optional hexcolor.
Delete a Pylon tag by ID.
List all Pylon teams. This endpoint is not paginated: it returns every team, so limit only trims the response.
Get a specific Pylon team by ID with full details including members.
List all Pylon users (internal team members). This endpoint is not paginated: it returns every user, so limit only trims the response. Set includedeactivated to include deactivated users. Use searchusers for a server-side filtered, bounded result.
Get a specific Pylon user by ID with full details.
Search Pylon users with filters for query, email, role, team, or active status.
Get the currently authenticated Pylon user. Returns the user the API token belongs to; the owning organization is exposed as organizationid and organizationname.
Validate Pylon credentials. Verifies credentials during setup.

In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}It’s an MCP server that lets you access data and functionality from a Pylon instance via tools. Your agents can call these tools to create accounts, update contacts, fetch issues, and more.
Pylon offers their own “official” MCP server. You can also access additional MCP servers from 3rd-party platforms, like Merge Agent Handler.
Here are a few popular use cases:
Here are some worth calling:
1. <code class="blog_inline-code">List_accounts</code>: Returns a paginated list of customer accounts with key metadata (name, ID, status, owner), so the model can browse and reference accounts in context.
2. <code class="blog_inline-code">Get_account</code>: Fetches detailed information for a single account by ID (contacts, MRR, lifecycle stage, notes), enabling precise, account‑specific reasoning.
3. <code class="blog_inline-code">List_contacts</code>: Lists contacts across accounts (with filters like account_id, role, status), so the model can identify the right people associated with a customer.
4. <code class="blog_inline-code">Get_contact</code>: Retrieves a single contact’s full profile (email, role, account, last activity), supporting personalized responses and outreach suggestions.
5. <code class="blog_inline-code">List_tickets</code>: Returns support tickets (with filters like account_id, status, priority), allowing the model to see open issues and historical context for a customer.
6. <code class="blog_inline-code">Get_ticket</code>: Fetches the full detail of a specific ticket (description, logs, comments, SLA), so the model can troubleshoot or summarize the case accurately.
7. <code class="blog_inline-code">List_opportunities</code>: Lists sales opportunities (with filters for stage, owner, account_id), enabling pipeline analysis and deal‑specific recommendations.
8. <code class="blog_inline-code">Create_note</code>: Creates an internal note linked to an account/contact/ticket, so the model can log summaries, next steps, or call notes back into your system.
Merge Agent Handler provides platform-level advantages:
Yes, Merge Agent Handler includes a security gateway with data loss protection (DLP) that allows you to define custom rules for tool inputs and outputs.
Here are some rules you can set:
1. Create (or sign in to) your Merge Agent Handler account and open the dashboard.
2. Create a Tool Pack for your Pylon workflow (this is the bundle of tools your agent will be allowed to call).
3. Add the Pylon connector to that Tool Pack, and start by enabling only the specific tools you need.
4. Set your security and policy baseline for Pylon tool calls (DLP rules, approvals for risky actions, rate limits, etc.).
5. Create a Registered User (the execution identity boundary), then complete the Pylon authentication flow for that Registered User so tool calls run under the right permissions.
6. Copy the MCP endpoint URL for your Tool Pack and Registered User and add it to your MCP client (Cursor, Claude Desktop, VS Code, Windsurf, etc.).
7. Run a simple “first tool call” in a test workflow, then check logs and iterate on Tool Pack scope and rules before rolling into production.
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now