Skip to main content
Glama

Unified Activity Reporting MCP Server

🎯 Overview

A unified MCP (Model Context Protocol) server that enables both Google Developer Experts (GDEs) and Microsoft MVPs to report their activities through AI-powered conversational interfaces.

Stop the boring manual data entry! Just talk to Claude and submit your activities naturally - whether it's a YouTube video, blog post, conference talk, or mentoring session.

Supported Programs

  • βœ… Microsoft MVP - Direct API integration with the MVP portal

  • βœ… Google GDE - Integration with Advocu API

  • πŸ”§ Both at once - If you're both an MVP and GDE, use one tool for everything!


πŸš€ Quick Start

Prerequisites

  • Node.js 18+

  • Claude Desktop

  • At least one access token (MVP or GDE)

Installation

Option 1: Local Development (Recommended)

git clone https://github.com/carlosazaustre/advocu-mcp-server.git cd advocu-mcp-server npm install npm run build

Option 2: Global Install

npm install -g advocu-mcp-server

Configuration

Edit your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

For Both MVP + GDE:

{ "mcpServers": { "activity-reporting": { "command": "node", "args": ["/absolute/path/to/advocu-mcp-server/dist/index.js"], "env": { "MVP_ACCESS_TOKEN": "your_mvp_bearer_token", "MVP_USER_PROFILE_ID": "your_mvp_profile_id", "ADVOCU_ACCESS_TOKEN": "your_gde_token", "DOCS_DIR": "/absolute/path/to/advocu-mcp-server/docs" } } } }

πŸ“š Important: The DOCS_DIR environment variable is required for documentation tools to work. Set it to the absolute path of the docs directory in your installation.

MVP Only:

{ "mcpServers": { "activity-reporting": { "command": "node", "args": ["/absolute/path/to/dist/index.js"], "env": { "MVP_ACCESS_TOKEN": "your_mvp_bearer_token", "MVP_USER_PROFILE_ID": "your_mvp_profile_id", "DOCS_DIR": "/absolute/path/to/advocu-mcp-server/docs" } } } }

GDE Only:

{ "mcpServers": { "activity-reporting": { "command": "node", "args": ["/absolute/path/to/dist/index.js"], "env": { "ADVOCU_ACCESS_TOKEN": "your_gde_token", "DOCS_DIR": "/absolute/path/to/advocu-mcp-server/docs" } } } }

Get Your Tokens

Microsoft MVP Token

For Claude Desktop users only (not Claude Code):

npm run capture-mvp-token

This tool will:

  1. Open your default browser to the MVP portal (you should already be logged in)

  2. Show you detailed instructions to capture the token from DevTools

  3. Paste your token when prompted

  4. Automatically update your Claude Desktop config file with the new token

  5. No browser automation detection - uses your real browser session!

Google GDE Token

Get your token from the Advocu Developer Portal.

Restart Claude Desktop

# Quit completely Cmd+Q # macOS Alt+F4 # Windows # Then reopen Claude Desktop

Look for the πŸ”¨ hammer icon to confirm tools are loaded!


πŸ’¬ Usage Examples

Just talk to Claude naturally! Here are examples:

Documentation Tools

"List available documentation"
"Show me the MVP API reference"
"What documentation is available?"
"Get the error handling documentation"

Microsoft MVP Activities

Submit a Video

"Submit my YouTube video to Microsoft MVP: - Title: Complete Guide to React Server Components - Published: October 9, 2025 - URL: https://youtube.com/watch?v=example - Livestream views: 12,500 - On-demand views: 12,500 - Sessions: 1 - Target audience: Developers, Technical Decision Makers - My role: Host - Tech area: Web Development - Description: A comprehensive tutorial covering React Server Components..."

Submit a Blog Post

"Add my latest blog post to MVP: - Title: Understanding TypeScript Generics - Date: 2025-10-01 - URL: https://myblog.com/typescript-generics - Views: 5,000 - Target audience: Developers - Role: Author - Tech area: Developer Tools"

Submit a Conference Talk

"Report my conference presentation to MVP: - Title: Building Scalable APIs with Node.js - Date: 2025-09-15 - URL: https://conference.com/my-talk - In-person attendees: 250 - Sessions: 1 - Target audience: Developers, IT Pros - Role: Speaker - Tech area: Cloud & AI"

Google GDE Activities

"Submit my workshop to my GDE profile: - Title: Advanced React Patterns Workshop - Type: Workshop - Date: 2025-08-20 - Format: Hybrid - Country: United States - In-person attendees: 50 - Total attendees: 150 - URL: https://workshop.com"
"Create a content creation draft for my Medium article about Next.js 14"
"Report my mentoring session with 3 developers about TypeScript best practices"

πŸ”§ Available Tools

Documentation Tools (2) - Always Available

Tool

Description

Usage

list_documentation

List all available documentation

"List available documentation"

get_documentation

Get a specific documentation file

"Show me the MVP API reference"

Available Documents:

  • api-reference - Complete API documentation for MVP and GDE

  • mvp-api-reference - Detailed MVP API specifications

  • mvp-fixes-changelog - MVP integration fixes history

  • error-handling - Error handling improvements guide

  • mcp-resources - MCP resources usage guide

πŸ“š Note: Documentation tools require DOCS_DIR to be set in your configuration.

Microsoft MVP Tools (3)

Tool

Description

Key Fields

submit_mvp_video

Videos, webinars, livestreams

views, sessions, role, tech area

submit_mvp_blog

Blog posts, articles

views, subscribers, tech area

submit_mvp_speaking

Conference talks, presentations

attendees, sessions, tech area

Google GDE Tools (7)

Tool

Description

submit_gde_content_creation

Articles, videos, podcasts

submit_gde_public_speaking

Talks and presentations

submit_gde_workshop

Training sessions

submit_gde_mentoring

Mentoring activities

submit_gde_product_feedback

Product feedback

submit_gde_googler_interaction

Google employee interactions

submit_gde_story

Success stories


πŸ”„ Token Refresh

Microsoft MVP Token (Expires: Hours/Days)

Your MVP token expires regularly. When you get a 401 error or your token expires:

For Claude Desktop users:

cd /path/to/advocu-mcp-server npm run capture-mvp-token

What happens:

  1. 🌐 Your default browser opens to the MVP portal

  2. βœ… If you're already logged in, you'll see your account immediately

  3. πŸ” If not logged in, log in with Microsoft (2FA supported)

  4. πŸ› οΈ Open DevTools (F12 or Cmd+Option+I)

  5. πŸ“ Navigate to "Add activity" and fill any field

  6. πŸ” In Network tab, find the request to mavenapi-prod.azurewebsites.net

  7. πŸ“‹ Copy the Bearer token from the Authorization header

  8. ⌨️ Paste the token in the terminal

  9. βœ… Your Claude Desktop config file is automatically updated!

  10. πŸ”„ Restart Claude Desktop

Advantages:

  • βœ… Uses your real browser (no automation detection)

  • βœ… Works with 2FA/MFA

  • βœ… Automatically updates your Claude Desktop config file

  • βœ… Clear step-by-step instructions

Google GDE Token (Expires: Less frequently)

Get a fresh token from Advocu when needed and update your config manually.


πŸ“‹ Required Fields Reference

MVP Video Activity

{ title: string; // Max 100 chars description: string; // Max 1000 chars date: string; // YYYY-MM-DD url: string; // Video URL targetAudience: string[]; // Developer, Student, IT Pro, etc. role: string; // Host, Presenter, etc. technologyFocusArea: string; liveStreamViews: number; onDemandViews: number; numberOfSessions: number; // Default: 1 isPrivate: boolean; // Optional }

MVP Blog Activity

{ title: string; description: string; date: string; url: string; targetAudience: string[]; role: string; // Author, Contributor, etc. technologyFocusArea: string; numberOfViews: number; subscriberBase: number; // Optional isPrivate: boolean; // Optional }

MVP Speaking Activity

{ title: string; description: string; date: string; url: string; targetAudience: string[]; role: string; // Speaker, Panelist, etc. technologyFocusArea: string; inPersonAttendees: number; numberOfSessions: number; liveStreamViews: number; // Optional onDemandViews: number; // Optional isPrivate: boolean; // Optional }

πŸ—οΈ Project Structure

advocu-mcp-server/ β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ index.ts # Entry point β”‚ β”œβ”€β”€ unifiedServer.ts # Main unified server (MVP + GDE) β”‚ β”œβ”€β”€ server.ts # Legacy GDE-only server β”‚ β”œβ”€β”€ mvpServer.ts # Standalone MVP server β”‚ β”œβ”€β”€ interfaces/ # Activity interfaces β”‚ β”‚ β”œβ”€β”€ ActivityDraftBase.ts # GDE base interface β”‚ β”‚ β”œβ”€β”€ ContentCreationDraft.ts # GDE content creation β”‚ β”‚ β”œβ”€β”€ ... # Other GDE interfaces β”‚ β”‚ └── mvp/ # MVP interfaces β”‚ β”‚ β”œβ”€β”€ MVPActivityBase.ts β”‚ β”‚ β”œβ”€β”€ MVPVideoActivity.ts β”‚ β”‚ β”œβ”€β”€ MVPBlogActivity.ts β”‚ β”‚ └── MVPSpeakingActivity.ts β”‚ └── types/ # Type definitions β”‚ β”œβ”€β”€ ContentType.ts # GDE types β”‚ β”œβ”€β”€ ... β”‚ └── mvp/ # MVP types β”‚ β”œβ”€β”€ MVPActivityType.ts β”‚ β”œβ”€β”€ MVPActivityRole.ts β”‚ └── MVPTargetAudience.ts β”œβ”€β”€ scripts/ β”‚ β”œβ”€β”€ capture-mvp-token.ts # Token capture tool β”‚ └── README.md # Script documentation β”œβ”€β”€ dist/ # Compiled output └── docs/ # πŸ“š Documentation (required for doc tools) β”œβ”€β”€ API.md # Complete API reference β”œβ”€β”€ MVP_API_REFERENCE.md # MVP API specifications β”œβ”€β”€ CHANGELOG_MVP_FIXES.md # MVP integration changelog β”œβ”€β”€ ERROR_HANDLING_IMPROVEMENTS.md # Error handling guide β”œβ”€β”€ MCP_RESOURCES.md # MCP resources guide └── RELEASE_NOTES_v0.2.0.md # Release notes

πŸ› οΈ Development

Build

npm run build

Development Mode

npm run dev

Lint and Format

npm run lint npm run format

Capture MVP Token

npm run capture-mvp-token

πŸ› Troubleshooting

Tools Don't Appear in Claude Desktop

  1. Check config path: Ensure your claude_desktop_config.json is in the right location

  2. Verify build: Run npm run build in the project directory

  3. Check logs: Restart Claude Desktop and check for errors

  4. Verify tokens: Make sure at least one token (MVP or GDE) is configured

401 Unauthorized Error (MVP)

Your token expired. Run:

npm run capture-mvp-token

Follow the instructions to capture a fresh token from DevTools, then restart Claude Desktop.

"At least one of GDE or MVP must be configured"

You need to set either:

  • ADVOCU_ACCESS_TOKEN (for GDE), or

  • MVP_ACCESS_TOKEN + MVP_USER_PROFILE_ID (for MVP)

Both can be set if you're both an MVP and GDE!

Documentation Tools Not Working

If you get errors like "Failed to read resource" or "Documentation not found":

  1. Check : Make sure you added DOCS_DIR to your Claude Desktop config

  2. Verify the path: The path must be absolute and point to the docs directory

  3. Example: "DOCS_DIR": "/Users/yourname/advocu-mcp-server/docs"

  4. Check directory exists: Run ls "$DOCS_DIR" to verify the directory exists

  5. Restart Claude Desktop: Changes to config require a restart

Example config:

{ "env": { "MVP_ACCESS_TOKEN": "...", "DOCS_DIR": "/absolute/path/to/advocu-mcp-server/docs" } }

MVP Submission Fails

  1. Check your profile ID: Make sure MVP_USER_PROFILE_ID is correct

  2. Verify token: Run npm run capture-mvp-token to get a fresh token

  3. Check required fields: All required fields must be provided

  4. Target audience: Must be an array (e.g., ["Developer"])


πŸ”’ Security & Privacy

  • Tokens are stored locally in your Claude Desktop config

  • Never commit tokens to version control

  • captured-api-calls.json - it contains sensitive data

  • MVP tokens expire regularly for security

  • Tokens are never sent to anyone except the official APIs


πŸ“– API Documentation

Microsoft MVP API

  • Base URL: https://mavenapi-prod.azurewebsites.net/api

  • Endpoint: POST /Activities/

  • Authentication: Bearer token

  • Payload: { "activity": { ...fields } }

Google GDE API (Advocu)

  • Base URL: https://api.advocu.com/personal-api/v1/gde

  • Endpoints: /activity-drafts/{type}

  • Authentication: Bearer token

  • Rate Limit: 30 requests/minute

For detailed field documentation, see docs/API.md.


🀝 Contributing

  1. Fork the project

  2. Create a feature branch: git checkout -b feature/amazing-feature

  3. Commit your changes (use conventional commits)

  4. Push to the branch: git push origin feature/amazing-feature

  5. Open a Pull Request


πŸ“ License

MIT License - see LICENSE file for details.


πŸ™ Acknowledgments


πŸ’‘ Tips

  • Be specific: The more details you provide to Claude, the better

  • Natural language: Just describe what you did - Claude will structure it

  • Batch submissions: Submit multiple activities in one conversation

  • Check responses: Claude will show you the API response for verification

  • Token expires? Just run npm run capture-mvp-token and paste your new token - takes 30 seconds


Questions or issues? Open an issue on GitHub or check the troubleshooting section.

Want to add more activity types? Check out the code structure and submit a PR! πŸš€

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that enables AI assistants like Claude to interact with Google Cloud Platform environments through natural language, allowing users to query and manage GCP resources during conversations.
    Last updated -
    9
    146
    179
    MIT License
  • -
    security
    F
    license
    -
    quality
    A server implementing the Model Context Protocol that enables AI assistants like Claude to interact with Google's Gemini API for text generation, text analysis, and chat conversations.
    Last updated -
    • Linux
    • Apple
  • -
    security
    -
    license
    -
    quality
    A Model Context Protocol server that enables AI assistants like Claude to read from, append to, and format text in Google Documents programmatically.
    Last updated -
    131
    MIT License
    • Linux
    • Apple
  • -
    security
    F
    license
    -
    quality
    Provides Multi-Agent Conversation Protocol access to Google Cloud TPU services, enabling management of Tensor Processing Units through natural language interactions with the Google TPU API.
    Last updated -
    • Linux
    • Apple

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/carlosazaustre/advocu-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server