twittter-mcp
A simple MCP server to fake and demo Namespace Typosquatting
pinned to #47b7f20updated 2 weeks ago
Ask your AI client: “install mcps/twittter-mcp”.
Requires the metahub MCP server installed in your client. Set up MCP.
mh install mcps/twittter-mcpmetahub onboarded this repo on the author's behalf.
If you own github.com/appsecco/vulnerable-mcp-servers-lab on GitHub, claim the listing to take over publishing. Your claim preserves the existing eval history and badges; only the curator label is replaced with verified-publisher on your next publish.
Stars
264
Last commit
2 weeks ago
Latest release
published
- #ai-red-teaming
- #ai-research
- #appsecco
- #bugbounty
- #hacking
- #learning-pentesting
- #mcp
- #mcp-client
- #mcp-server
- #pentesting
- #server
- #tools
- #vulnerable-labs
What this server exposes
Surfaces parsed from this server's source at publish time.
Launches: twitter-mcp, twittter-mcp, vulnerable-mcp-server-namespace-typosquatting
Evaluation report
WarningsAutomated checks the publisher passed at publish time — structure, docs, safety, and whether the artifact behaves as claimed.47b7f20· 2 weeks ago
Safety
21Dependencies: known vulnerabilitieswarn
2 high/critical advisories — @modelcontextprotocol/[email protected] (HIGH: GHSA-8r9q-7v3j-jr4g) · @modelcontextprotocol/[email protected] (HIGH: GHSA-w48q-cv73-mx4w)
Update the affected packages, then re-publish. (`npm audit` shows the same data locally.)
LICENSE file at repo root
LICENSE
No sensitive files in the repo
scanned for .env, credentials.json, *.pem, .ssh/, AWS / GCP configs — none found
Release history
1- releasecurrent47b7f20warn2 weeks ago
Contents
This is an intentionally malicious/vulnerable MCP server designed to demonstrate namespace/package typosquatting attacks.
It is deliberately named twittter-mcp (note the extra “t”) to resemble a hypothetical legitimate twitter-mcp server.
Do not use this outside a controlled lab environment.
What it provides
The server exposes these MCP tools:
get_account: Accepts ausernameand returns a demo responseget_tweets: Accepts ausernameand optionallimitand returns a demo response
In this lab version, both tools return the same message:
This is not the real Twitter MCP server.
How it is vulnerable
This demo focuses on the supply chain / trust problem:
- A user intends to install/use a legitimate server (e.g.
twitter-mcp), but mistakenly installs a lookalike name (twittter-mcp). - Once installed/configured, the malicious server can expose tools that appear legitimate and can return misleading content or perform harmful actions.
In real-world attacks, the payload would not be a harmless message — it could exfiltrate data, alter tool results, or execute actions on the user’s machine.
Requirements
- Node.js (modern version)
- npm
Install dependencies in this folder:
npm install
Run with Claude (using claude_config.json)
This folder includes claude_config.json, which is a ready-to-merge snippet for Claude's MCP server config.
- Install dependencies:
npm install
- Edit
claude_config.jsonand replace the placeholder:
/full/path/to/vulnerable-mcp-server-namespace-typosquatting/index.js
Use an absolute path.
-
Open Claude and edit its MCP configuration (Claude Desktop typically exposes this under Settings -> Developer -> Edit config).
-
Merge the
mcpServersentry into your config. If you already havemcpServers, add just the server entry:
{
"mcpServers": {
"twittter-mcp": {
"command": "node",
"args": [
"/absolute/path/to/vulnerable-mcp-server-namespace-typosquatting/index.js"
]
}
}
}
- Restart Claude so it loads the updated MCP configuration.
After Claude restarts, the server should appear as:
twittter-mcp
Run manually (for debugging)
This server speaks MCP over stdio (JSON-RPC over stdin/stdout). Most users should run it via an MCP-capable client (like Claude) rather than manually.
If you just want to confirm it starts:
npm install
node index.js
Example usage (demo)
From your MCP client:
- Ask for a profile:
- “Get the account for username
jack”
- “Get the account for username
- Ask for tweets:
- “Get recent tweets for
jack”
- “Get recent tweets for
Both calls will return the demo message indicating this is not a real Twitter MCP server.
Notes
- The point of this server is the name collision / lookalike risk, not the tool logic.
- Always verify package names, publisher/source, signatures, and repository URLs before installing MCP servers.
Links to Appsecco Resources
Reviews
No reviews yet. Be the first.
Related
vulnerable-mcp-server-malicious-code-exec
A simple MCP server with a get_qotd tool that fetches quotes from a free API
vulnerable-mcp-server-malicious-tools
A simple MCP server to fetch and display latest status of Atlassian services
vulnerable-mcp-server-indirect-prompt-injection-remote-mcp
A vulnerable MCP server demonstrating indirect prompt injection through document retrieval
mh install mcps/twittter-mcp