Waalaxy MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Waalaxy MCP Serverlist my campaigns"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| List all campaigns | 🔄 Planned |
| Get campaign statistics | 🔄 Planned |
| List prospects in a campaign | 🔄 Planned |
| Get LinkedIn conversations | 🔄 Planned |
| Create a new campaign | 🔄 Planned |
| Add prospects to a campaign | 🔄 Planned |
| Send a message to a prospect | 🔄 Planned |
| 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-sessionConfiguration
{
"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 pytestArchitecture
Since Waalaxy lacks a public API, this server:
Uses Playwright to control a headless browser
Authenticates via saved session cookies
Scrapes/interacts with the Waalaxy web app
Exposes functionality as MCP tools
Related
linkedin-mcp-server - LinkedIn MCP server (similar approach)
Waalaxy - Official Waalaxy website
License
Apache-2.0
Contributing
PRs welcome! See CONTRIBUTING.md for guidelines.
Available Tools
6 toolsclose_sessionA
Close browser session and clean up resources
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time period: week, month, all | month |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status: active, paused, finished, all | all |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Campaign ID |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Filter: all, unread, starred | all |
| limit | No | Max conversations to return |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | No | Campaign ID (optional) | |
| list_id | No | List ID (optional) | |
| limit | No | Max number of prospects to return |
TDQS
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.
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.
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.
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.
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.
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.
6 tool updates
v0.1.0- First observed
close_session - First observed
get_analytics - First observed
get_campaign_stats - First observed
get_campaigns - First observed
get_conversations - First observed
get_prospects
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: session management, analytics, campaigns listing, campaign stats, conversations, and prospects. No overlap or ambiguity.
All tools consistently use the verb_noun pattern with lowercase and underscores. Verbs are either 'close' or 'get', which is predictable and clear.
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.
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
Related MCP Connectors
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
- mcpOAuthcom.curviate
LinkedIn actions for AI agents: search, messaging, posts and invites, as hosted MCP tools.
LinkedIn outreach MCP server — 19 tools for AI agents to prospect, sequence, and manage contacts.
- LinkMCPOAuthio.linkmcp
Hosted MCP server for LinkedIn: 31 tools for profiles, search, messaging, posts, enrichment.
Related MCP Servers
- FlicenseBqualityDmaintenancePlaywright wrapper for MCP that enables LLM-powered clients to control a browser for automation tasks.101-
- AlicenseNot gradedqualityCmaintenanceMCP server for programmable LinkedIn automation via Playwright, offering 20 tools for profile management, messaging, feed interaction, and job searching through real browser automation.11 npmMIT
- AlicenseAqualityBmaintenanceEnables MCP clients to automate a real Chrome browser via Playwright, supporting session sharing and tools for navigation, clicking, typing, and more.112MIT
- AlicenseBqualityCmaintenancePlaywright-powered MCP server for LinkedIn that automates jobs, profile edits, messaging, network actions, and feed posts using a real logged-in browser session.36Apache 2.0