AgencyAnalytics MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AGENCYANALYTICS_API_KEY | Yes | Your AgencyAnalytics API key (Admin Settings > Company Details) | |
| AGENCYANALYTICS_BASE_URL | No | API endpoint URL (override for testing) | https://apirequest.app/query |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_campaignsA | List campaigns (clients) from AgencyAnalytics. Retrieves campaigns with pagination. Note: "Campaign" in the API corresponds to "Client" in the AgencyAnalytics UI (renamed Feb 2025). Args: offset: Pagination offset (default: 0) limit: Maximum number of results (default: 50) Returns: JSON array of campaigns with metadata Examples: - list_campaigns() - Get first 50 campaigns - list_campaigns(offset=50, limit=50) - Get next page of campaigns |
| get_campaignA | Get a single campaign (client) by ID. Retrieves detailed information about a specific campaign. Args: campaign_id: The AgencyAnalytics campaign ID Returns: JSON object with campaign details Examples: - get_campaign(campaign_id=123) - Get campaign with ID 123 |
| create_campaignA | Create a new campaign (client) in AgencyAnalytics. Args: url: The website URL for the campaign company: The company/client name Returns: JSON object with created campaign data Examples: - create_campaign(url="https://example.com", company="Acme Corp") |
| update_campaignA | Update an existing campaign (client). Args: campaign_id: The campaign ID to update url: New website URL (optional) company: New company name (optional) Returns: JSON object with update result Examples: - update_campaign(campaign_id=123, company="New Name") - update_campaign(campaign_id=123, url="https://new-site.com") |
| delete_campaignA | Delete a campaign (client) from AgencyAnalytics. Args: campaign_id: The campaign ID to delete Returns: JSON object with deletion result Examples: - delete_campaign(campaign_id=123) - Delete campaign 123 |
| list_usersA | List users from AgencyAnalytics. Retrieves all platform users with their details and roles. Args: offset: Pagination offset (default: 0) limit: Maximum number of results (default: 50) Returns: JSON array of users with metadata Examples: - list_users() - Get first 50 users - list_users(limit=100) - Get up to 100 users |
| get_userA | Get a single user by ID. Retrieves detailed information about a specific user including their role, status, and campaign access. Args: user_id: The AgencyAnalytics user ID Returns: JSON object with user details Examples: - get_user(user_id=456) - Get user with ID 456 |
| create_userA | Create a new user in AgencyAnalytics. Args: email: User email address first_name: User first name last_name: User last name role: User role (default: 'client') campaign_access: Access level - 'restricted' or 'all' (default: 'restricted') campaign_id: Campaign ID to grant access to (for restricted users) Returns: JSON object with created user data Examples: - create_user(email="john@example.com", first_name="John", last_name="Doe") - create_user(email="jane@acme.com", first_name="Jane", last_name="Smith", campaign_id=123) |
| update_userA | Update an existing user. Args: user_id: The user ID to update email: New email address (optional) first_name: New first name (optional) last_name: New last name (optional) role: New role (optional) campaign_access: New access level (optional) Returns: JSON object with update result Examples: - update_user(user_id=456, first_name="Jane") - update_user(user_id=456, role="admin") |
| delete_userA | Delete a user from AgencyAnalytics. Args: user_id: The user ID to delete Returns: JSON object with deletion result Examples: - delete_user(user_id=456) - Delete user 456 |
| list_backlinksA | List backlinks from AgencyAnalytics. Retrieves custom backlinks with optional filtering by campaign. Args: campaign_id: Filter by campaign ID (optional) offset: Pagination offset (default: 0) limit: Maximum number of results (default: 50) Returns: JSON array of backlinks with metadata Examples: - list_backlinks() - Get all backlinks - list_backlinks(campaign_id=123) - Get backlinks for campaign 123 - list_backlinks(offset=50, limit=50) - Get next page |
| create_backlinkA | Create a new backlink in AgencyAnalytics. Args: campaign_id: The campaign to associate the backlink with title: Backlink title url: The page URL where the link appears target_url: The URL the link points to target_anchor: Anchor text of the link (optional) link_type: Type of link (optional) status: Backlink status (optional) notes: Additional notes (optional) Returns: JSON object with created backlink data Examples: - create_backlink(campaign_id=123, title="Blog Post", url="https://blog.com/post", target_url="https://client.com") |
| update_backlinkA | Update an existing backlink. Args: backlink_id: The backlink ID to update title: New title (optional) url: New page URL (optional) target_url: New target URL (optional) target_anchor: New anchor text (optional) status: New status (optional) notes: New notes (optional) Returns: JSON object with update result Examples: - update_backlink(backlink_id=789, status="active") - update_backlink(backlink_id=789, notes="Confirmed live") |
| delete_backlinkB | Delete a backlink from AgencyAnalytics. Args: backlink_id: The backlink ID to delete Returns: JSON object with deletion result Examples: - delete_backlink(backlink_id=789) - Delete backlink 789 |
| list_keywordsA | List keywords for a campaign. Retrieves keywords tracked for a specific campaign. Keywords can only be queried one campaign at a time. Args: campaign_id: The campaign ID (required) offset: Pagination offset (default: 0) limit: Maximum number of results (default: 50) Returns: JSON array of keywords with metadata Examples: - list_keywords(campaign_id=123) - Get keywords for campaign 123 - list_keywords(campaign_id=123, limit=100) - Get more keywords |
| get_keyword_rankingsA | Get keyword rankings for a campaign. Retrieves detailed keyword ranking data including Google, Google Mobile, Google Places, and Bing rankings with change tracking. Args: campaign_id: The campaign ID (required) offset: Pagination offset (default: 0) limit: Maximum number of results (default: 50) Returns: JSON array of keyword rankings with search engine positions, ranking changes, SERP URLs, and search volume data Examples: - get_keyword_rankings(campaign_id=123) - Get rankings for campaign 123 - get_keyword_rankings(campaign_id=123, limit=100) - Get more rankings |
| get_campaign_rankingsA | Get aggregate campaign ranking data over time. Retrieves historical ranking trends for a campaign including average positions, ranking distribution (1-3, 4-10, 11-20, etc.), and changes across Google, Google Mobile, Google Places, and Bing. Args: campaign_id: The campaign ID (required) offset: Pagination offset (default: 0) limit: Maximum number of results (default: 50) Returns: JSON array of campaign ranking snapshots over time with distribution breakdowns and competitor data Examples: - get_campaign_rankings(campaign_id=123) - Get ranking trends - get_campaign_rankings(campaign_id=123, limit=30) - Get last 30 data points |
| create_competitorA | Add a competitor to a campaign. Args: campaign_id: The campaign ID to add the competitor to url: The competitor website URL Returns: JSON object with created competitor data Examples: - create_competitor(campaign_id=123, url="https://competitor.com") |
| create_tagA | Create a new tag in AgencyAnalytics. Args: name: The tag name Returns: JSON object with created tag data Examples: - create_tag(name="priority") - Create a "priority" tag |
| create_login_grantA | Generate an SSO login token for a user. Creates a one-time login URL that can be used to log a user into AgencyAnalytics without requiring their password. Useful for embedding reports or creating custom login pages. Args: user_id: The user ID to generate a login token for Returns: JSON object with login token, URL, and expiration info Examples: - create_login_grant(user_id=456) - Generate SSO link for user 456 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/osherai/mcp-agencyanalytics-python'
If you have feedback or need assistance with the MCP directory API, please join our Discord server