meetalfred-mcp
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., "@meetalfred-mcpshow my active 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.
meetalfred-mcp
MCP server for MeetAlfred — LinkedIn automation campaign monitoring, lead management, reply tracking, messaging, tag management, campaign CRUD, and social post scheduling.
Features
Campaign monitoring — list, filter, pause/resume, rename, clone, archive campaigns
Lead management — fetch leads, add to campaigns, tag, exclude, return to campaign
Reply tracking — pull replies, view conversation threads, send messages
Tag management — full CRUD on tags (create, list, update, delete)
Lead tagging — add/set tags on individual leads or in bulk
Social post scheduling — create, update, reschedule, archive, and delete LinkedIn posts
Activity feed — review recent account actions across all channels
Notifications — check unread count
Team visibility — list team members and their connections
User profile — get current authenticated user info
White-label support — configurable base URLs for custom instances
Related MCP server: Prosp MCP Server
Dual API Architecture
This server uses two MeetAlfred API layers:
Layer | Auth | Required | Capabilities |
Webhook API |
| Yes | Campaigns, leads, replies, connections, activity (read-heavy) |
Internal API |
| No | Tags CRUD, campaign management, messaging, lead ops, post scheduling, notifications |
The webhook API provides core read operations. The internal API (optional) enables full CRUD, messaging, and richer data. Both work simultaneously.
Installation
pip install meetalfred-mcpOr install from source:
git clone https://github.com/cphoskins/meetalfred-mcp.git
cd meetalfred-mcp
pip install -e .Configuration
Get your API key
Log in to MeetAlfred
Go to Settings > Integrations > Webhooks
Generate an API key
Get your JWT token (optional, for internal API)
Log in to MeetAlfred in your browser
Open DevTools > Application > Cookies
Copy the
tokencookie value
Claude Code
Add to your .claude/settings.json or project .mcp.json:
{
"mcpServers": {
"meetalfred": {
"command": "meetalfred-mcp",
"env": {
"MEETALFRED_API_KEY": "your-api-key-here",
"MEETALFRED_JWT_TOKEN": "your-jwt-token-here"
}
}
}
}White-label instances
If you're using a white-label MeetAlfred instance, set the base URLs:
{
"mcpServers": {
"meetalfred": {
"command": "meetalfred-mcp",
"env": {
"MEETALFRED_API_KEY": "your-api-key-here",
"MEETALFRED_JWT_TOKEN": "your-jwt-token-here",
"MEETALFRED_BASE_URL": "https://api.your-instance.com/api/integrations/webhook",
"MEETALFRED_API_BASE_URL": "https://api.your-instance.com/api/v1"
}
}
}
}Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"meetalfred": {
"command": "python",
"args": ["-m", "meetalfred_mcp.server"],
"env": {
"MEETALFRED_API_KEY": "your-api-key-here",
"MEETALFRED_JWT_TOKEN": "your-jwt-token-here"
}
}
}
}Tools
Webhook API (requires MEETALFRED_API_KEY)
Tool | Description |
| List campaigns by type (active, draft, archived, all) |
| Fetch leads with campaign and person details |
| Add a new lead to a campaign (LinkedIn URL required) |
| Get reply messages from leads across campaigns |
| Get LinkedIn connections with full profile data |
| List team members (requires team owner access) |
| Get connections across team members |
| Get recent activity by type (invites, accepted, messages, replies, etc.) |
Internal API — Tags (requires MEETALFRED_JWT_TOKEN)
Tool | Description |
| Get all tags (no pagination) |
| List tags with pagination and sorting |
| Create a new tag |
| Rename an existing tag |
| Delete a tag |
Internal API — Campaigns (requires MEETALFRED_JWT_TOKEN)
Tool | Description |
| List campaigns with full details, stats, and filtering |
| Get full details of a single campaign |
| Get campaign counts by status |
| Get all campaigns grouped by category |
| Update campaign fields (name, status) |
| Delete a campaign |
| Pause a running campaign |
| Resume a paused campaign |
| Rename a campaign |
| Clone (duplicate) a campaign |
| Archive a campaign |
Internal API — Messaging (requires MEETALFRED_JWT_TOKEN)
Tool | Description |
| List replies with full details and sorting |
| Get messages in a conversation thread |
| Send a message in a conversation (reply to a lead) |
Internal API — Lead Management (requires MEETALFRED_JWT_TOKEN)
Tool | Description |
| List leads in a campaign with status filtering |
| Get lead status counts for a campaign |
| Return leads to a campaign sequence |
| Add tags to one or more leads |
| Exclude or un-exclude leads from campaigns |
Internal API — Posts / Social Publishing (requires MEETALFRED_JWT_TOKEN)
Tool | Description |
| List scheduled and published posts with engagement stats |
| Get post counts by platform (LinkedIn, Facebook, Instagram, Twitter) |
| Get full details of a single post (content, status, schedule, audience) |
| Create a new scheduled LinkedIn post (set title, content, time, audience) |
| Update a pending post's content, title, audience, or schedule |
| Reschedule a pending post to a new time |
| Archive a post |
| Delete a post |
Internal API — Other (requires MEETALFRED_JWT_TOKEN)
Tool | Description |
| Get the current authenticated user's profile |
| Get count of unread notifications |
Environment Variables
Variable | Required | Description |
| Yes | API key from Settings > Integrations > Webhooks |
| No | JWT token for internal API (enables tags, campaign CRUD, messaging, post scheduling) |
| No | Override webhook API base URL for white-label instances |
| No | Override internal API base URL for white-label instances |
Common Workflows
Reply to a lead
1. list_replies_detailed() → find reply with conversationUrn
2. get_conversation_messages(conversationUrn) → read conversation history
3. send_message(conversationUrn, "Your reply text")Return a lead to a campaign
1. get_campaign_leads(campaignId, "replied") → find lead entityUrn
2. return_lead_to_campaign([entityUrn], campaignId)Schedule a LinkedIn post
1. create_post(title="Internal label", content="Post body text", scheduled_at="2026-03-15T14:00:00.000Z")
2. list_posts() → verify post was created, get post ID
3. update_post_time(postId, "2026-03-16T15:00:00.000Z") → reschedule if neededTag leads from a campaign
1. get_all_tags() → find or create tag IDs
2. get_campaign_leads(campaignId) → get entity URNs
3. add_tags_to_leads([entityUrns], [tagIds])Development
git clone https://github.com/cphoskins/meetalfred-mcp.git
cd meetalfred-mcp
pip install -e ".[dev]"
pytest tests/License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
MCP server for LeadDelta — manage LinkedIn connections and CRM data via AI assistants.
- LinkMCPOAuthio.linkmcp
Hosted MCP server for LinkedIn: 31 tools for profiles, search, messaging, posts, enrichment.
Hosted MCP server for MuntuAI outreach campaigns, leads, senders, domains, and analytics.
Related MCP Servers
- AlicenseAqualityDmaintenanceFully featured MCP server that provides automation tools for LinkedIn, supporting browser-based scraping and API-based operations for content management, media uploads, and reactions.63MIT
- AlicenseAqualityDmaintenanceMCP server for Prosp.ai LinkedIn outreach automation. Manage leads, campaigns, messaging, and analytics programmatically.17MIT
- 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
- AlicenseNot gradedqualityBmaintenanceMCP server for AI-native LinkedIn prospecting. It enables lead research, audience building, conversation management, and controlled outreach actions such as messaging and publishing through an OAuth-protected remote endpoint.2MIT