eavz

Integration Aliases

Register the same integration multiple times on an MCP server with different connections using aliases.

Integration aliases let you add the same integration to an MCP server multiple times, each with its own connection and identity. This is useful when you need separate connections for the same service — like a Slack bot token and a Slack user token.

Use Cases

  • Slack Bot vs Userslack_bot for automated messages, slack_user for user-context messages
  • GitHub Org vs Personalgithub_work for work repos, github_personal for personal repos
  • Multiple Google Accountsgoogle_marketing and google_engineering with different OAuth connections
  • Staging vs Productionairtable_staging and airtable_prod pointing to different bases

Creating Aliased Tools

1

Open your MCP server

Navigate to MCP Servers and select the server you want to configure.

2

Add a tool

Click Add Tool and select the integration (e.g., Slack).

3

Set the alias

In the Alias field, enter a custom name like slack_bot. This overrides the default integration name for tool naming.

4

Choose a connection

Select the connection to use for this alias (e.g., your bot token connection).

5

Repeat for additional aliases

Add the same integration again with a different alias (e.g., slack_user) and a different connection.

Naming Rules

Aliases must follow these rules:

  • Format: lowercase letters, numbers, hyphens, and underscores only (/^[a-z][a-z0-9_-]*$/)
  • Length: maximum 64 characters
  • Must start with a lowercase letter
  • Consistent mapping: all tools with the same alias on a server must use the same integrationName

Valid examples: slack_bot, github-work, airtable_prod, google_eng

Invalid examples: Slack_Bot (uppercase), 123slack (starts with number), slack bot (spaces)

Tool Naming with Aliases

In TOOLS mode, tool names use the alias instead of the integration name:

AliasActionTool Name
slack_botsend_channel_messageslack_bot__send_channel_message
slack_usersend_channel_messageslack_user__send_channel_message
github_workcreate_issuegithub_work__create_issue

Without an alias, the tool name defaults to using the integration name (e.g., slack__send_channel_message).

Code Mode with Aliases

In CODE mode, aliases create separate namespaces under weavz.*:

javascript
// With aliases, each has its own namespace
await weavz.slack_bot.send_channel_message({
  channel: '#alerts',
  text: 'Automated alert!',
})
 
await weavz.slack_user.send_channel_message({
  channel: '#general',
  text: 'Message from user context',
})

The weavz_read_api tool returns separate TypeScript declarations for each alias:

text
AI Agent calls: weavz_read_api({ integration: "slack_bot" })
 
Returns:
  declare namespace weavz {
    namespace slack_bot {
      function send_channel_message(input: {
        channel: string;
        text: string;
      }): Promise<{ ok: boolean }>;
    }
  }

Alias Conflicts

If you try to add a tool with an alias that's already associated with a different integration on the same server, you'll get a 409 ALIAS_CONFLICT error:

json
{
  "error": "Alias 'slack_bot' is already associated with integration 'slack' on this server",
  "code": "ALIAS_CONFLICT"
}

This prevents confusion — one alias always maps to one integration per server.

Default Behavior

When no integrationAlias is provided, the integration name itself is used as the alias. This means existing tools work without any changes, and aliases are an opt-in feature for advanced use cases.