sarthaksavvy/advocu-docker-mcp
If you are the rightful owner of advocu-docker-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Advocu MCP Server is a Model Context Protocol server designed for submitting various activities to the Advocu platform.
Advocu MCP Server
A Model Context Protocol (MCP) server for submitting activities to the Advocu platform.
Support
If you find this project useful, please consider supporting my work through GitHub Sponsors 🙏
Follow Me
Scan the QR code below to visit my website and follow my work:
Website: https://sarthaksavvy.com
Installation
npm install
Development
npm run dev
Build
npm run build
npm start
Available Tools
The MCP server exposes the following tools for submitting activities:
1. submit_feedback_session
Submit a feedback session activity.
Required fields:
activityDate(string, format: YYYY-MM-DD)dockerRepresentative(string, 3-100 characters)modeOfCommunication(enum: "Captains Briefing session", "Direct call", "Slack", "Other")metrics.timeSpent(integer, minimum 1)title(string, 3-200 characters)description(string, max 2000 characters)
Optional fields:
private(boolean)
2. submit_resource
Submit a resource activity.
Required fields:
title(string, 3-200 characters)description(string, max 2000 characters)activityDate(string, format: YYYY-MM-DD)metrics.views(integer, minimum 1)contentType(enum: Blog post, Newsletter, Social media post, Code sample, Sketch, Book or e-book, Video, Documentation, Open-source library, Use case, Other)
Optional fields:
tags(array of strings)activityUrl(string, max 500 characters, must be a valid URL)additionalInfo(string, max 2000 characters)private(boolean)
3. submit_public_speaking
Submit a public speaking activity.
Required fields:
title(string, 3-200 characters)description(string, max 2000 characters)activityDate(string, format: YYYY-MM-DD)format(enum: "In-person event", "Virtual event", "Recorded video", "Live video")duration(integer, minimum 1 minutes)metrics.attendees(integer, minimum 1)
Optional fields:
tags(array of strings)activityUrl(string, max 500 characters, must be a valid URL)additionalInfo(string, max 2000 characters)private(boolean)
4. submit_event
Submit an event activity.
Required fields:
title(string, 3-200 characters)description(string, max 2000 characters)dates.start(string, format: YYYY-MM-DD)dates.end(string, format: YYYY-MM-DD)type(enum: Hackathon, Meetup, Study Jam, Workshop, Training, Speaker session, Networking session, Conference, Trade shows, Other)format(enum: "In-person", "Virtual", "Hybrid")duration(enum: "Full-day event", "Half-day event", "Multiple days event", "Evening event", "Other")metrics.attendees(integer, minimum 1)
Optional fields:
tags(array of strings)activityUrl(string, max 500 characters, must be a valid URL)additionalInfo(string, max 2000 characters)private(boolean)
5. submit_amplification
Submit an amplification activity.
Required fields:
activityDate(string, format: YYYY-MM-DD)metrics.views(integer, minimum 1)title(string, 3-200 characters)description(string, max 2000 characters)type(array, 1-3 items from: "Repost", "Comment Engagement", "Other")channel(array, 1-4 items from: "HackerNews", "Social Media", "Own channel", "Other")
Optional fields:
url(string, max 100 characters)private(boolean)
6. scrape_content
Scrape content from a URL (YouTube video, article, or any link) to extract metadata.
Required fields:
url(string, must be a valid HTTP/HTTPS URL)
Returns: Metadata extracted from the URL, including:
- For YouTube videos:
title,description,viewCount,channelName,publishDate,uploadDate,thumbnailUrl,videoId - For articles/websites:
title,description,publishDate,author,siteName,imageUrl,contentType
This tool uses curl to fetch HTML content and parses metadata from Open Graph tags, meta tags, JSON-LD structured data, and platform-specific formats (e.g., YouTube's embedded data).
Usage
This server is designed to be used with MCP clients. There are several ways to use it:
Option 1: Using with Agent Configuration (Recommended)
For agent frameworks like Cagent/Cline, you can use the provided agent configuration file. See for a complete example.
This agent configuration:
- Automatically detects activity types from your descriptions
- Extracts and infers dates, titles, descriptions, and metrics
- Uses the scrape_content tool to extract metadata from URLs (blog posts, YouTube videos, etc.) using curl
- Helps complete all required fields intelligently
Setup:
- Copy
advocu_activity_agent.yamlto your agent configuration directory - Set the
ADVOCU_API_KEYenvironment variable:export ADVOCU_API_KEY="your-api-key-here" - Make sure Docker is running (required for the Docker-based MCP server)
- The agent will automatically use the MCP server via Docker
Example usage with the agent:
Just describe your activity naturally, and the agent will handle the rest:
- "I published a blog post about Docker yesterday at https://example.com/docker-blog"
- "I gave a talk at DockerCon last week, 45 minutes, 200 attendees, virtual event"
- "I had a feedback session with John from Docker today, 30 minutes via Slack"
The agent will automatically:
- Detect the activity type
- Extract information from URLs using the scrape_content tool (curl-based)
- Fill in required fields
- Ask for any missing information
Option 2: Direct MCP Client Configuration
For traditional MCP clients, add this to your MCP client configuration:
{
"mcpServers": {
"advocu": {
"command": "node",
"args": ["path/to/advocu-mcp/dist/index.js"],
"env": {
"ADVOCU_API_KEY": "your-api-key-here",
"ADVOCU_API_URL": "https://api.advocu.com"
}
}
}
}
Option 3: Docker-based Usage
You can also run the MCP server directly via Docker (as shown in the agent config):
docker run -i --rm -e ADVOCU_API_KEY=your-api-key-here sarthaksavvy/advocu-mcp-server:latest
Authentication
The server supports API key authentication through environment variables:
ADVOCU_API_KEY: Your Advocu API key for authenticationADVOCU_API_URL: The base URL for the Advocu API (defaults tohttps://api.advocu.com)
These can be set either in your environment or in the MCP client configuration as shown in the example below.
License
MIT