Skip to main content
Glama
DemandSphereDev

DemandSphere MCP Server

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DEMANDSPHERE_HOSTNoHTTP server bind address127.0.0.1
DEMANDSPHERE_PORTNoHTTP server port8765
DEMANDSPHERE_API_KEYYesDemandSphere API key
DEMANDSPHERE_BASE_URLNoAPI base URLhttps://api.demandsphere.com
DEMANDSPHERE_TRANSPORTNoTransport mode: stdio or streamable-httpstdio
DEMANDSPHERE_REQUEST_TIMEOUTNoHTTP timeout (seconds)30.0
DEMANDSPHERE_MAX_REQUESTS_PER_MINUTENoRate limit cap60
DEMANDSPHERE_MAX_RESULTS_PER_TOOL_CALLNoMax rows per response100

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_sitesA

List all sites with org/account hierarchy. Returns site IDs needed by other tools.

list_sites_flatA

List all sites as a flat array. Returns id, name, url, keyword count.

serp_analyticsB

SERP analytics with multiple views. view='performance': per-keyword rank, traffic, CTR (requires global_key). view='trends': rank history over time (requires site_id). view='engine_comparison': compare rankings across engines (requires site_id). view='engine_summary': aggregate rank/visits/revenue (requires site_id).

get_keyword_groupsB

Keyword group/tag performance with ranking bucket distribution (bucket0-bucket8), volume, traffic, CTR.

get_local_rankingsD

Local search rankings with per-location rank history.

get_landing_matchesC

Check if ranking pages match preferred landing pages. Returns match/mismatch/none status.

get_landings_historyB

Landing page history for a specific keyword. Shows which page ranked on each date.

get_mentionsC

Brand mentions and citations in AI responses. Returns per-keyword mention counts, context sentences, cited URLs, client vs competitor breakdown.

get_keyword_citationsC

Citation URLs for a single keyword on an AI platform.

get_bulk_citationsB

Citation URLs for multiple keywords in one call (max 50). Returns keyword→URLs mapping.

get_site_citationsB

Paginated citations for all keywords on a site. Returns keyword→URLs mapping.

llm_analyticsB

LLM traffic analytics with multiple views. view='stats': aggregated traffic stats. view='performance': side-by-side LLM comparison. view='channels': per-channel comparison. view='cross_channel': cross-channel overview. view='cross_llms': cross-platform comparison. Use metric param for non-stats views. Filter with llms_list/channels_list (comma-separated) for stats/performance views.

get_llm_filtersC

Available filter values for LLM analytics: channels, LLM names, metrics.

get_people_also_askC

PAA questions from SERPs. Optionally includes search intent and AdWords data (volume, CPC, competition).

list_brandsC

List brands configured for a site (used for GenAI mention/citation tracking).

create_brandC

Create a new brand for GenAI visibility tracking.

update_brandB

Update an existing brand's name or description.

delete_brandsC

Delete one or more brands by ID.

searchB

Search DemandSphere data. Returns record IDs for use with fetch(). Covers keywords, AI mentions, citations, LLM traffic, PAA.

fetchA

Fetch a record by ID from a previous search() call.

Prompts

Interactive templates invoked by user choice

NameDescription
weekly-ranking-reportAnalyze keyword rankings for the last 7 days. Highlights drops, gains, and new top-10 entries.
genai-visibility-checkCheck AI citation visibility across ChatGPT, Gemini, and Perplexity.
competitor-gapCompare keyword rankings between two sites to find competitive gaps and opportunities.
landing-page-auditAudit landing page match/mismatch status and identify keywords pointing to wrong pages.

Resources

Contextual data attached and managed by the client

NameDescription
search-enginesAvailable search engine codes for the search_engine parameter.
sort-optionsValid sort_by values per tool category.
granularityValid granularity values for time-series data.
metricsValid metric values for LLM analytics tools.
sitesAvailable sites with IDs, global keys, names, and URLs.

TDQS

C2.8/5.0

Scored across 20 tools

Disambiguation3/5

Several tools have overlapping purposes, particularly the citation tools (get_keyword_citations, get_bulk_citations, get_site_citations) and site listings (list_sites vs list_sites_flat). However, descriptions clarify the differences in scope and format, so the ambiguity is manageable but not negligible.

Naming Consistency3/5

The naming follows a mostly verb_noun pattern (list_sites, get_keyword_groups, create_brand), but there are deviations like serp_analytics, llm_analytics, and get_people_also_ask, plus plural inconsistencies (delete_brands vs create_brand). This mixed style reduces predictability.

Tool Count4/5

With 20 tools, the server is slightly over the ideal range but still scoped to a complex domain covering sites, keywords, brands, citations, and LLM analytics. Some tools could be consolidated, but the count is defensible for the feature set.

Completeness4/5

The tool surface covers core analytics and brand management well, including search/fetch for data exploration. Minor gaps exist, such as no direct keyword list tool or site management operations, but these are likely outside the intended scope.

Maintenance

ActivityInactive
ResponsivenessNo issues