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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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