Connect your AI Agents to Unily in minutes

Merge lets you securely connect your agents to Unily and thousands of tools instantly

Available tools

get_audience

Get a Unily audience by its alias.

search_audiences

Search Unily audiences by text, aliases, type, and repository, with paging. You must provide at least one of search_text, aliases, or repository_id. Returns matching audiences and a total count.

get_dynamic_audience

Get a Unily dynamic audience (including its filter rules) by alias.

upsert_dynamic_audience

Create or update a Unily dynamic audience by alias. Requires a name and filter rules (each with field, comparisonOperator, values, and nested filters). The alias must start with a letter and contain only letters, numbers, and underscores.

delete_dynamic_audience

Delete a Unily dynamic audience by alias.

get_content

Get a Unily content node by its unique identifier (GUID). Returns the content with its properties. Set include_descendants to also return child content. Use query_content to find content IDs.

query_content

Search Unily content with a Lucene query and pagination. Returns matching content items and a paging token for the next page. Example query_text: '+nodeTypeAlias:News'. Pass paging_token from page_info to fetch the next page.

create_content

Create a new Unily content node. Requires a unique_id (GUID) to assign, a name, the document_type_alias, the parent_unique_id, and properties matching the document type. Multilingual property values are JSON strings.

update_content

Create or replace a Unily content node by unique_id (GUID) using a full PUT. Requires parent_unique_id and the full set of properties. Use patch_content to change only a few properties.

patch_content

Partially update a Unily content node by unique_id (GUID). Updates only the supplied properties and fields. Use update_content for a full replacement.

delete_content

Delete a Unily content node by unique_id (GUID). All child content is deleted too. Use query_content to find the unique_id.

create_content_from_template

Create new Unily content by copying a predefined template. Requires the template_id, the parent_id to create under, and a name for the new content. Returns the new content's ID and tree path.

list_followed_content

List the content a Unily user follows, with search and offset pagination (skip/take).

follow_content

Make a Unily user follow a content item, by user_id and content_id.

unfollow_content

Make a Unily user unfollow a content item, by user_id and content_id.

list_followed_users

List the users a Unily user follows, with search and offset pagination (skip/take).

follow_user

Make a Unily user follow another user, by user_id and followed_user_id.

unfollow_user

Make a Unily user unfollow another user, by user_id and followed_user_id.

list_form_submissions

List Unily form submissions. Requires a scope ('Approvals', 'MySubmissions', or 'AllSubmissions'). Filter by form_ids, approval_state, free-text match, and page with skip/limit.

get_form_submission

Get a Unily form submission by its submission ID.

delete_form_submission

Delete a Unily form submission by its submission ID.

update_submission_approval_status

Update the approval status of a Unily form submission. State is one of None, PendingApproval, Approved, or Rejected. Optionally include a message.

get_media

Get a Unily media node by unique identifier (GUID). Set include_descendants to also return child media.

get_media_image

Get a Unily media image by unique identifier (GUID), including file metadata and focal point.

get_media_folder

Get a Unily media folder by unique identifier (GUID).

list_notifications

List a Unily user's tray notifications with offset pagination. Filter by 'since' date and page with skip/take.

post_notification

Post a Unily notification to users or audiences. The message must include the instance's default system language (commonly 'en-US'). Provide at least one recipient via user_recipients (emails), user_recipient_ids (integer user IDs), and/or audience_recipients (aliases). icon/types cannot be combined with identifier.

delete_notification

Delete a single Unily notification for a user by user_id and notification_id.

list_organisations

List all organisations registered in the Unily instance.

get_organisation

Get a Unily organisation by its unique ID (GUID).

search

Run a GraphQL search against Unily content. Provide a GraphQL query string and optional variables, operation_name, and language_code. Returns the raw GraphQL response. Requires the search feature to be enabled.

list_security_groups

List all Unily security groups (static, dynamic, and external).

get_static_security_group

Get a Unily static security group by its unique ID (GUID), including its members.

get_dynamic_security_group

Get a Unily dynamic security group by its unique ID (GUID), including its configuration.

list_security_roles

List all Unily security roles and their permissions.

get_security_role

Get a Unily security role by its unique ID (GUID).

get_comment

Get a Unily social comment by its comment ID.

create_comment

Create a Unily social comment. Requires author_unique_id and type ('Comment' or 'Share'). Set content_unique_id to the content/channel and reply_to to nest a reply. Requires the Unily Social feature to be enabled.

update_comment

Update a Unily social comment by comment_id. Requires author_unique_id and type ('Comment' or 'Share'). Use get_comment to inspect the comment first.

delete_comment

Delete a Unily social comment by its comment ID.

list_social_reactions

List Unily social reaction types (e.g. Like). Filter by applicable_document_types (comma-separated aliases) or by content_id, and by social_messages_enabled. applicable_document_types and content_id cannot be combined.

list_document_types

List all Unily document (content) types. Optionally pass iso_code for translated names.

get_document_type

Get a Unily document type by alias. Optionally pass iso_code for translated names.

list_data_types

List Unily data types. Optionally filter by name.

get_data_type

Get a Unily data type by its unique identifier (GUID).

list_user_types

List all Unily user types and their property definitions.

get_user_type

Get a Unily user type by its alias.

list_languages

List the languages configured in the Unily instance.

list_users

List Unily users with pagination. Returns users and a paging token for the next page. Use order_by/direction to sort. Pass paging_token from page_info to fetch the next page.

get_user

Get a Unily user by unique identifier (GUID). Use list_users or query_users to find IDs.

query_users

Search Unily users with a Lucene query and pagination. Returns matching users and a paging token. Pass paging_token from page_info to fetch the next page.

create_user

Create a new Unily user. Requires name, login_name, and user_type_alias. Optionally set email, a unique_id (GUID), and properties matching the user type.

update_user

Update a Unily user's properties by unique_id (GUID). Only supplied fields and properties are changed. Use get_user to find the unique_id.

delete_user

Delete a Unily user by unique_id (GUID). Use get_user to confirm the user first.

validate_credential

Validate Unily credentials by making a test API call. Returns success status and a message. Use this to confirm the subdomain, client ID, and client secret are correct and the app has access.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

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}
11
Copy Code

Open 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}
Copy Code
Copied!

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  }
Copy Code

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}
Copy Code

FAQs on using Merge's Unily  MCP server

FAQs on using Merge's Unily  MCP server

What is a Unily MCP?

It's an MCP server that lets your agents access content and functionality from a Unily intranet via tools. Your agents can invoke these tools to search knowledge content, retrieve pages, publish announcements, look up people in the directory, and more.

Unily doesn't offer an MCP server purpose built for Unily, but you can use one from a third-party platform, like Merge Agent Handler.

How can I use the Unily MCP server?

The use cases naturally depend on the agent you've built, but here are a few common ones:

  • Internal knowledge answers: an agent can search the Unily intranet for the relevant policy or guide and answer an employee's question with a link to the source page
  • Announcement publishing: an agent can take an approved internal communication and publish it as an announcement to the right audience in Unily
  • Onboarding support: an agent can pull the pages and resources a new hire needs from Unily and assemble a personalized getting-started checklist
  • People lookups from Slack: a teammate can ask their AI who owns a given process, and the agent searches the Unily directory and content to find the right person

What are popular tools for Unily's MCP server?

Here are some of the most commonly used tools:

  • search_content: searches the intranet for pages and documents matching a query. Useful for agents that answer employee questions from internal knowledge
  • get_page: returns the content of a specific page. Call this when an agent needs the full text of a known article
  • list_announcements: returns recent announcements and their audiences. Good for workflows that summarize what's new across the organization
  • create_announcement: publishes an announcement to a target audience. Use this when an agent distributes an approved internal message
  • get_user: returns a person's directory profile and role. Helpful when an agent needs to identify the owner of a process or team
  • list_spaces: returns the sites or spaces in the intranet. Useful for agents that need to scope a search or post to the right area

What makes Merge Agent Handler's Unily MCP server better than alternative Unily MCP servers?

There are several reasons to use Merge Agent Handler's Unily MCP server rather than building or using an alternative:

  • Enterprise-grade security and DLP: Merge Agent Handler includes built-in data loss prevention controls that let you block or redact sensitive fields before they reach an agent. For Unily, this means confidential internal communications and employee directory data can be withheld even when an agent can search broadly
  • Managed authentication and credentials: Merge stores and refreshes Unily credentials on your behalf. You never expose raw API keys or OAuth tokens to an agent or manage token rotation manually
  • Real-time observability and audit trail: Every tool call made against Unily is logged with timestamp, tool name, input parameters, and response metadata. You can audit exactly which pages and people an agent accessed without instrumenting anything yourself
  • Tool Packs and controlled access: Tool Packs let you bundle specific Unily tools with tools from other connectors into a single MCP endpoint, scoped to a specific use case. An agent gets exactly the tools it needs, nothing more

How can I start using Merge Agent Handler's Unily MCP server?

You can take the following steps:

1. Create or log into your Merge Agent Handler account.

2. Install the Merge CLI by running pipx install merge-api, then run merge configure to link the CLI to your Merge account and merge login to authenticate your session.

3. Register the Agent Handler MCP server with Claude Code by running claude mcp add --transport http agent-handler https://ah-api.merge.dev/mcp, then open Claude Code and run /mcp to confirm agent-handler appears with a connected status.

4. Select agent-handler from the MCP list. This opens a browser window where you select which integrations to authenticate. Choose Unily and complete the auth flow. Merge stores and manages the credentials going forward.

5. Open a Claude Code session and start querying Unily data directly. The first time you use a Unily tool, a Magic Link may appear to complete connector authentication.

If you want to connect Merge Agent Handler's Unily MCP with internal or customer-facing agentic products, you can follow the steps in our docs.

Can employees use Merge Agent Handler to connect their AI tools to Unily?

Yes, Agent Handler for Employees lets your employees connect Claude, ChatGPT, Microsoft Copilot, Cursor, and other MCP-compatible AI tools to Unily without bypassing IT governance.

Instead of setting up direct connections with personal credentials that IT can't monitor or revoke, each employee authenticates through Agent Handler and gets individual credentials tied to their identity. An employee can ask their AI to find a policy, summarize a recent announcement, or look up who owns a process, all within the permissions IT has defined.

IT also provisions access by role or group via SCIM. An internal communications manager, for example, gets Unily access to publish announcements, Google Drive to source supporting documents, and Slack to notify teams; while an HR coordinator gets Unily access to update policy pages, Workday to verify employee details, and Gmail to follow up with staff.

Every tool call an employee's AI makes to Unily is also inspected against your DLP rules and logged to a searchable audit trail, giving security teams full visibility into what data was accessed and by whom.

Explore other MCP servers built and managed by Merge

activecampaign
ActiveCampaign
adobe_pdf_services
Adobe PDF Services
ahrefs
Ahrefs
airtable
Airtable
amadeus
Amadeus
amazon_s3
Amazon S3
amplitude
Amplitude
anaplan
Anaplan
apollo
Apollo
arize
Arize
articulate
Articulate Reach 360
asana
Asana
ashby
Ashby
attio
Attio
aviationstack
Aviationstack
axiom
Axiom
bamboohr
BambooHR
basecamp
Basecamp
biorxiv
bioRxiv
bitbucket
Bitbucket
bitly
Bitly
box
Box
calendly
Calendly
canva
Canva

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now