Context API MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Context API MCP ServerWhat does @visionscaper think about the future of AI?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Context API MCP Server
MCP (Model Context Protocol) server to access the doppelgangers.ai Social Media Context API.
This MCP server provides access to contextualized renderings (XML descriptions) of Twitter/X posts. The contextualization allows for:
More high-quality retrieval of relevant information from the posts,
More high-quality analysis of insights, trends, topics, etc. from the posts
The contextualization is achieved by adding the following information to the XML description of each post:
Descriptions of referenced posts and images
When the post is a reply in a conversation, the conversation or a summary of the conversation.
Metadata about the post (e.g., creation data, post ID, etc.)
Note that no descriptions are added yet related to referenced videos or links (external sites).
The XML structure helps to describe the relationship between posts and their context.
Using the available tools has a cost associated with it, with each call the credit balance is updated.
Features
search_relevant_posts: Semantic search of contextualized post renderings of a certain Twitter/X user, based on a natural language queries like "What does @visionscaper think about the future of AI?".
get_all_user_posts: Retrieve all contextualized post renderings of a specific Twitter/X user. This is useful to analyse the posts for insights, trends and topics over all posts.
check_credits: View your API credit balance and usage.
Related MCP server: grok-mcp-server
Installation
1. Get your API Key
Request an API key at dev.doppelgangers.ai:3003 or via the API:
curl -X POST https://dev.doppelgangers.ai:3003/auth/request-key \
-H "Content-Type: application/json" \
-d '{"email": "your@email.com", "name": "Your Name"}'2. Configure Your Client
Add the following config to your MCP client:
{
"mcpServers": {
"context-api": {
"command": "npx",
"args": ["-y", "context-api-mcp"],
"env": {
"CONTEXT_API_KEY": "your-api-key-here"
}
}
}
}MCP Client configuration
Follow Amp's MCP guide and use the config provided above. You can also install the Context API MCP server using the CLI:
amp mcp add context-api -- npx context-api-mcpTo use the Context API MCP server follow the instructions from Antigravity's docs to install a custom MCP server. Add the following config to the MCP servers config:
{
"mcpServers": {
"context-api": {
"command": "npx",
"args": ["-y", "context-api-mcp"],
"env": {
"CONTEXT_API_KEY": "your-api-key-here"
}
}
}
}Note: If you encounter an "EOF" error, try using the absolute path to
npx(e.g.,/usr/local/bin/npx) or invoke the CLI script directly vianode.
Use the Claude Code CLI to add the Context API MCP server (guide):
claude mcp add context-api npx context-api-mcpEdit your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Add the Context API MCP server:
{
"mcpServers": {
"context-api": {
"command": "npx",
"args": ["-y", "context-api-mcp"],
"env": {
"CONTEXT_API_KEY": "your-api-key-here"
}
}
}
}After updating the configuration, restart Claude Desktop for changes to take effect.
Follow Cline's MCP guide and use the config provided above.
Follow the configure MCP guide using the standard config from above. You can also install the Context API MCP server using the Codex CLI:
codex mcp add context-api -- npx context-api-mcpStart Copilot CLI:
copilotStart the dialog to add a new MCP server by running:
/mcp addConfigure the following fields and press CTRL+S to save the configuration:
Server name:
context-apiServer Type:
[1] LocalCommand:
npx -y context-api-mcp
Follow the MCP install guide, with the standard config from above. You can also install the Context API MCP server using the VS Code CLI:
code --add-mcp '{"name":"context-api","command":"npx","args":["-y","context-api-mcp"],"env":{"CONTEXT_API_KEY":"your-api-key-here"}}'Open Cursor Settings
Go to Features > MCP
Click + Add New MCP Server
Enter the following details:
Name: Context API
Type:
commandCommand:
npx -y context-api-mcp
Add your API key in the environment variables section if supported, or ensure it's set in your system environment.
Use the Factory CLI to add the Context API MCP server (guide):
droid mcp add context-api "npx -y context-api-mcp"Install the Context API MCP server using the Gemini CLI.
Project wide:
gemini mcp add context-api npx context-api-mcpGlobally:
gemini mcp add -s user context-api npx context-api-mcpAlternatively, follow the MCP guide and use the standard config from above.
Follow the configure MCP guide using the standard config from above.
Go to Settings | Tools | AI Assistant | Model Context Protocol (MCP) -> Add. Use the config provided above.
The same way context-api-mcp can be configured for JetBrains Junie in Settings | Tools | Junie | MCP Settings -> Add. Use the config provided above.
In Kiro Settings, go to Configure MCP > Open Workspace or User MCP Config > Use the configuration snippet provided above.
Or, from the IDE Activity Bar > Kiro > MCP Servers > Click Open MCP Config. Use the configuration snippet provided above.
In Qoder Settings, go to MCP Server > + Add > Use the configuration snippet provided above.
Alternatively, follow the MCP guide and use the standard config from above.
Install the Context API MCP server using the Qoder CLI (guide):
Project wide:
qodercli mcp add context-api -- npx context-api-mcpGlobally:
qodercli mcp add -s user context-api -- npx context-api-mcpFollow the Visual Studio MCP documentation to add the server using the standard config from above.
Go to Settings | AI | Manage MCP Servers -> + Add to add an MCP Server. Use the config provided above.
Follow the configure MCP guide using the standard config from above.
Edit your Zed settings file (settings.json):
{
"mcp": {
"servers": {
"context-api": {
"command": "npx",
"args": ["-y", "context-api-mcp"],
"env": {
"CONTEXT_API_KEY": "your-api-key-here"
}
}
}
}
}Usage Examples
Once configured, you can use the tools in your MCP client:
Search Relevant Posts
Semantic search of contextualized post renderings of a certain Twitter/X user, based on a natural language query.
What does @elonmusk think about AI regulation?Get All User Posts
Retrieve all contextualized post renderings of a specific Twitter/X user. This tool is useful when you need to analyse posts for insights, trends and topics over all posts.
What has recently been the mood of @elonmusk?Check Credits
Check your Context API credit balance and usage statistics.
How many API credits do I have left?Tool Reference
search_relevant_posts
search_relevant_posts
Semantic search of contextualized post renderings of a certain Twitter/X user, based on a natural language query. Use this tool to find specific posts, relevant to the query.
Parameter | Type | Required | Description |
query | string | Yes | Natural language search query |
username | string | Yes | Twitter/X username (without @) |
platform | string | No | Platform (default: "X") |
get_all_user_posts
Retrieve all contextualized post renderings of a specific Twitter/X user. This tool is useful when you need to analyse posts for insights, trends and topics over all posts.
Parameter | Type | Required | Description |
username | string | Yes | Twitter/X username (without @) |
platform | string | No | Platform (default: "X") |
simple | boolean | No | If true, returns simplified post renderings without metadata |
limit | number | No | Max results to return (default: all) |
offset | number | No | Pagination offset (default: 0) |
check_credits
Check your Context API credit balance and usage statistics. No parameters required.
Environment Variables
Variable | Required | Default | Description |
CONTEXT_API_KEY | Yes | - | Your Context API key |
CONTEXT_API_URL | No | API base URL (optional) |
Troubleshooting
Server not showing in Client
Ensure you have Node.js 18+ installed
Check that
CONTEXT_API_KEYis set correctlyRestart your client completely
API errors
Check the client logs for detailed error messages. The server outputs to stderr to avoid interfering with the MCP protocol.
Test the server manually
CONTEXT_API_KEY=your-key npx context-api-mcpDevelopment
To run the server from source:
Clone the repository
Install dependencies:
npm installBuild the project:
npm run buildRun the server:
node dist/index.js
Links
Available Tools
3 toolscheck_creditsA
Check your Context API credit balance and usage statistics.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully bears the burden. It discloses a read-only intent but does not detail authentication requirements, rate limits, or what happens on error. The behavior is simple but could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, complete sentence that is front-loaded and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple query but lacks details on return values (e.g., what usage statistics are included) since no output schema exists. Could be improved by mentioning the structure of the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema coverage is 100%. According to guidelines, baseline is 4. No additional parameter information is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks credit balance and usage statistics, with a specific verb 'check' and resource 'Context API credit balance'. It unambiguously distinguishes from sibling tools focused on posts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking credit status, and sibling tools are unrelated (posts), so context is clear. However, no explicit when/when-not or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_user_postsA
Retrieve all contextualized post renderings of a specific Twitter/X user. This tool is useful when you need to analyse posts for insights, trends and topics over all posts. For instance, to answer queries such as:
"What topics does @elonmusk tweet most about?"
"What has recently been the mood of @elonmusk?"
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Twitter/X username (without @) | |
| platform | No | Platform. Currently only 'X' is supported. | X |
| simple | No | If true, returns simplified post renderings, without metadata such as creation date, post ID, etc. | |
| limit | No | Max results to return (default: all) | |
| offset | No | Pagination offset |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must cover behavioral traits. It describes retrieving posts but does not disclose side effects, authentication needs, rate limits, pagination behavior, or what 'contextualized' means. It implies a read operation but lacks necessary detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear first sentence and uses bullet example queries. It is front-loaded and efficient, though the examples could be integrated more tightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, and no annotations, the description is incomplete. It lacks details on return format, pagination, rate limits, and what 'contextualized' entails, which are needed for effective usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema for parameters like username, platform, simple, limit, offset. No extra value or deficiency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'retrieve' and the resource 'all contextualized post renderings of a specific Twitter/X user'. It distinguishes from sibling tools like 'search_relevant_posts' by focusing on a single user's all posts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context with example queries ('What topics does @elonmusk tweet most about?') and states it's for analyzing posts for insights. However, it does not specify when not to use or explicitly contrast with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_relevant_postsA
Semantic search of contextualized post renderings of a certain Twitter/X user, based on a natural language query. Twitter/X username and platform (= X) must be provided. Use this tool to find specific posts, relevant to the query.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query. Use natural language to describe what you're looking for. For instance: * "What does @elonmusk think about AI regulation?" or * "What is @hosseeb's prediction on the price of Bitcoin?" | |
| username | Yes | Twitter/X username to search within (without @). This argument is required. | |
| platform | No | Platform to search. Currently only 'X' (Twitter) is supported. | X |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description fails to disclose behaviors such as rate limits, authentication requirements, or how results are ordered. Only a high-level 'semantic search' is mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff. The first sentence defines the core function; the second provides usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 3 parameters and no output schema, the description is minimal but adequate. It lacks details on result format or search behavior, which could be inferred.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed query examples. The description merely restates requirements already in schema, adding no extra meaningful context about parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs semantic search on a user's posts using natural language. It distinguishes from sibling 'get_all_user_posts' by focusing on relevance to a query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description encourages use 'to find specific posts' but does not explicitly contrast with alternatives like 'get_all_user_posts' or provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.0.8- First observed
check_credits - First observed
get_all_user_posts - First observed
search_relevant_posts
TDQS
Each tool has a clear, non-overlapping purpose: credits check, full post retrieval, and semantic search. No ambiguity.
All tool names follow a consistent verb_noun pattern in snake_case (check_credits, get_all_user_posts, search_relevant_posts).
Three tools is slightly minimal but well-scoped for the server's focused purpose of analyzing Twitter/X user posts. The count is not excessive or too thin.
Covers the core operations for the domain: account status, exhaustive post retrieval, and semantic search. Minor gaps like single post or user profile are not critical for the intended analysis tasks.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
X (Twitter) profiles, tweets and single-tweet lookup by handle or URL. No login. Pay per result.
X (formerly Twitter): X (formerly Twitter) public and private data API for search, posts (Tweets).
X (formerly Twitter) posts, profiles, and search for AI agents. Free key, self-minted, no signup.
Fetch recent public X/Twitter posts by named handle for monitoring, comparison, OSINT, and research.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables searching X (formerly Twitter) using xAI's Responses API with support for filtering by handles, date ranges, and media understanding, returning structured results with citations.1311MIT
- AlicenseNot gradedqualityDmaintenanceSearch X (formerly Twitter) in real-time from your AI assistant using xAI's Grok API, with no X API account required.57MIT
- FlicenseNot gradedqualityDmaintenanceEnables real-time search of X (Twitter) posts, user timelines, and trends using either xAI's Responses API or the official X API v2.4-
- AlicenseNot gradedqualityDmaintenanceReal-time X/Twitter social intelligence for AI agents and developers, powered by Grok's live search capabilities.483MIT
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/doppelgangersai/context-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server