Skip to main content
Glama
globodai-group

Waalaxy MCP Server

Waalaxy MCP Server

MCP (Model Context Protocol) server for Waalaxy - LinkedIn automation tool.

⚠️ Status: In Development

Waalaxy does not provide a public API. This MCP server uses browser automation (Playwright) to interact with the Waalaxy web interface.

Related MCP server: LinkedIn MCP

Features (Planned)

Tool

Description

Status

get_campaigns

List all campaigns

🔄 Planned

get_campaign_stats

Get campaign statistics

🔄 Planned

get_prospects

List prospects in a campaign

🔄 Planned

get_conversations

Get LinkedIn conversations

🔄 Planned

create_campaign

Create a new campaign

🔄 Planned

add_prospects

Add prospects to a campaign

🔄 Planned

send_message

Send a message to a prospect

🔄 Planned

get_analytics

Get account analytics

🔄 Planned

Prerequisites

  • Python 3.10+

  • uv package manager

  • Playwright with Chromium

  • Active Waalaxy account

Installation

# Install dependencies
uv sync

# Install Playwright browsers
uvx playwright install chromium

# Create session (first time)
uvx mcp-server-waalaxy --get-session

Configuration

{
  "mcpServers": {
    "waalaxy": {
      "command": "uvx",
      "args": ["mcp-server-waalaxy"]
    }
  }
}

Session Management

Session is stored at ~/.waalaxy-mcp/session.json. Re-run --get-session if authentication expires.

Development

# Clone the repo
git clone https://github.com/globodai-group/mcp-server-waalaxy.git
cd mcp-server-waalaxy

# Install dev dependencies
uv sync --dev

# Run tests
uv run pytest

Architecture

Since Waalaxy lacks a public API, this server:

  1. Uses Playwright to control a headless browser

  2. Authenticates via saved session cookies

  3. Scrapes/interacts with the Waalaxy web app

  4. Exposes functionality as MCP tools

License

Apache-2.0

Contributing

PRs welcome! See CONTRIBUTING.md for guidelines.

Available Tools

6 tools
close_sessionA

Close browser session and clean up resources

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description alone must disclose behaviors. It states 'close browser session and clean up resources' but does not mention if the operation is irreversible, requires authentication, or has side effects on other sessions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded, consisting of two brief phrases. It is concise, though slightly terse; however, every word is relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (no parameters, no output schema), the description is mostly adequate. However, it lacks details on behavioral effects such as irreversibility or resource cleanup specifics, which would be helpful for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema coverage is 100%. The description adds no additional parameter information, but with no parameters, the baseline for this dimension is 4 as per guidelines.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Close' and the resource 'browser session', and the action 'clean up resources' distinguishes it from sibling tools which are all 'get_' operations, providing a clear and distinct purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. However, the context of sibling tools being all read-only suggests this tool is for ending a session, which is implied but not formally guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_analyticsC

Get account analytics and statistics

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoTime period: week, month, allmonth

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must disclose behavioral traits. It only says 'Get account analytics', implying a read operation, but no details on authentication, rate limits, or what kind of analytics (e.g., user activity, page views) are returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short (one phrase), but it under-specifies the tool. It could include a brief explanation of the analytics scope without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (single enum parameter, no output schema), the description is incomplete. It fails to clarify what analytics are provided, leaving the agent guessing. Should mention the type of data (e.g., account-wide stats over time periods).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter 'period' having enum values and description. The tool description does not add extra meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get account analytics and statistics', which is a clear verb-resource pairing but lacks specificity about which analytics are included. It does not differentiate from sibling tool 'get_campaign_stats', which likely covers campaign-specific stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'get_campaign_stats' or 'close_session'. No mention of prerequisites or context for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_campaignsC

Get all campaigns from Waalaxy

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status: active, paused, finished, allall

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden. It does not disclose that the tool is read-only, that it supports filtering by status (though the schema does), or any other behavioral traits like pagination or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence, front-loaded with the purpose. It is concise without being overly verbose, though it could include more detail without bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one optional parameter and no output schema, the description is minimally complete. However, it does not mention the filtering capability, leaving the agent unaware of the status parameter's role.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter status, which has a description, enum, and default. The description adds no extra value beyond the schema, so it meets the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get all campaigns from Waalaxy' clearly states the action and resource. However, it does not differentiate from the sibling tool get_campaign_stats, which could cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like get_campaign_stats or get_analytics. The description lacks context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_campaign_statsC

Get statistics for a specific campaign

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesCampaign ID

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It only states 'Get statistics' with no mention of read-only behavior, authentication needs, rate limits, or side effects, making it insufficient for the agent to judge safety.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that earns its place, but it is too short to provide necessary detail. Some expansion could improve clarity without verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and the description does not describe return values or the nature of the statistics. For a simple tool, this is a significant gap that leaves the agent unsure of what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with campaign_id described as 'Campaign ID'. The description adds no extra meaning beyond the schema, such as format or source of the ID, so it meets baseline but does not enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and resource 'statistics for a specific campaign', distinguishing it from siblings like get_campaigns (which lists campaigns) and get_analytics (broader analytics). However, it lacks specificity on what statistics are provided.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as get_analytics. The description implies use for a specific campaign but does not explain when not to use it or what prerequisites exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_conversationsC

Get LinkedIn conversations from Waalaxy inbox

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter: all, unread, starredall
limitNoMax conversations to return

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only states the action without disclosing behavioral traits like what data is returned, pagination behavior, or any side effects. Since no annotations are provided, the description carries the full burden for transparency, which it fails to meet. The tool is a read operation, but this is not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no unnecessary words. It is front-loaded with the essential verb and resource. While lean, it earns its place by being direct, though it could be slightly expanded for completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with only two optional parameters and no output schema, the description is minimally adequate. It covers the core purpose but omits context like default behavior of the filter parameter or whether the results are ordered. Overall, it meets the minimum viable bar.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description does not need to add much. It lists the parameter names implicitly, but does not provide additional context beyond what the schema already offers. The baseline of 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'LinkedIn conversations from Waalaxy inbox', making the purpose immediately understandable. However, it does not distinguish this tool from siblings like get_prospects or get_campaigns, which also fetch list-type data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description lacks any indication of prerequisites, context, or exclusions. Without such guidance, an AI agent may not know if this is the appropriate tool for tasks involving specific conversation subsets.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_prospectsB

Get prospects from a campaign or list

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idNoCampaign ID (optional)
list_idNoList ID (optional)
limitNoMax number of prospects to return

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description lacks behavioral details such as behavior when both campaign_id and list_id are provided, rate limits, or what happens with no IDs. This is insufficient for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very brief (one sentence, 8 words) but could benefit from additional context without being verbose. It is not wastefully long, but it is also not optimally informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With three optional parameters, no output schema, and no annotations, the description is too sparse to fully guide the agent on behavior, pagination, or error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds the phrase 'from a campaign or list', which modestly clarifies the source but does not significantly enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and resource 'prospects' with qualifiers 'from a campaign or list', distinguishing it from sibling tools about campaigns, conversations, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving prospects but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives despite clear sibling context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.1.0
    • First observedclose_session
    • First observedget_analytics
    • First observedget_campaign_stats
    • First observedget_campaigns
    • First observedget_conversations
    • First observedget_prospects

TDQS

B3.2/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: session management, analytics, campaigns listing, campaign stats, conversations, and prospects. No overlap or ambiguity.

Naming Consistency5/5

All tools consistently use the verb_noun pattern with lowercase and underscores. Verbs are either 'close' or 'get', which is predictable and clear.

Tool Count5/5

With 6 tools covering the core functionalities of a Waalaxy automation server (campaigns, prospects, conversations, analytics, session), the count is well-scoped and each tool earns its place.

Completeness2/5

The tool surface is heavily read-only, missing write operations for campaigns (create, update, delete), prospects (create, update, delete), and conversations (send messages). This severely limits automation capabilities.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for programmable LinkedIn automation via Playwright, offering 20 tools for profile management, messaging, feed interaction, and job searching through real browser automation.
    11 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables MCP clients to automate a real Chrome browser via Playwright, supporting session sharing and tools for navigation, clicking, typing, and more.
    11
    2
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Playwright-powered MCP server for LinkedIn that automates jobs, profile edits, messaging, network actions, and feed posts using a real logged-in browser session.
    36
    Apache 2.0