TwitterAPI.io MCP Server for AI assistant access to Twitter data
Project description
TwitterAPI.io MCP Server
A Model Context Protocol (MCP) server that provides LLM applications with access to Twitter data through the TwitterAPI.io service. This server enables AI assistants like Claude to retrieve and analyze tweets, user profiles, and other Twitter data in a structured way.
๐ Features
Resources
- Tweet data by ID (
tweet://{tweet_id}) - Tweet replies (
tweet://{tweet_id}/replies) - Tweet retweeters (
tweet://{tweet_id}/retweeters) - User profiles (
user://{username}) - User tweets (
user://{username}/tweets) - User followers (
user://{username}/followers) - User following (
user://{username}/following)
Tools
- Basic Twitter operations (get tweet, get user profile, search tweets)
๐ Requirements
- Python 3.8 or higher
- TwitterAPI.io API key
๐ง Installation
Option 1: Direct Installation from PyPI (Recommended)
# Install with pip
pip install twitterapi-mcp
# or with uv for better performance
uv pip install twitterapi-mcp
Option 2: Use with MCP in Claude Desktop (No Installation)
You can use the server directly through uv run by adding to your .mcp.json file:
"twitterapi-mcp": {
"command": "uv",
"args": [
"run",
"twitterapi-mcp"
],
"env": {
"TWITTER_API_KEY": "your_api_key_here"
}
}
Option 3: From Source
- Clone this repository:
git clone https://github.com/DevRico003/twitterapi.io-mcp.git
cd twitterapi.io-mcp
- Install as development package:
pip install -e .
- Configure your TwitterAPI.io API key using environment variables or a
.envfile:
TWITTER_API_KEY=your_api_key_here
LOG_LEVEL=INFO
CACHE_TTL=3600
MAX_TWEETS=100
๐ Usage
Running the Server
Run directly with Python:
# Run the server package as a module
python -m twitterapi_server
Or use the MCP development mode:
mcp dev twitterapi_server
Install in Claude Desktop
# If you have the package installed:
mcp install -m twitterapi-mcp --name "Twitter API"
# Or directly from the code:
mcp install twitterapi_server --name "Twitter API"
โ๏ธ Configuration
The server supports the following environment variables:
TWITTER_API_KEY(required): Your TwitterAPI.io API keyLOG_LEVEL(optional): Logging level (default: INFO)CACHE_TTL(optional): Cache timeout in seconds (default: 3600/1 hour)MAX_TWEETS(optional): Maximum tweets per request (default: 100)
๐ Project Structure
.
โโโ .gitignore
โโโ LICENSE
โโโ MANIFEST.in
โโโ README.md # This file
โโโ pyproject.toml # Project configuration and dependencies
โโโ requirements.txt # Dependencies (alternative format)
โโโ setup.py # Build script (legacy compatibility)
โโโ twitterapi/ # Main package source code
โ โโโ __init__.py
โ โโโ api_client.py
โ โโโ config.py
โ โโโ mcp_server.py
โ โโโ utils.py
โ โโโ resources/
โ โ โโโ __init__.py
โ โ โโโ tweet_resources.py
โ โ โโโ user_resources.py
โ โโโ tools/
โ โโโ __init__.py
โ โโโ basic_tools.py
โโโ twitterapi_server/ # Server entry point package
โโโ __init__.py # Contains main() function
๐งช Testing
Run the tests with pytest:
## ๐ฆ Publishing to PyPI (Developer Notes)
To publish a new version of this package to PyPI:
1. **Increment Version:** Update the `version` number in `pyproject.toml`.
2. **Install Tools:** Make sure you have the necessary tools installed:
```bash
pip install --upgrade build twine
```
3. **Configure Credentials:** Ensure you have a `.pypirc` file in your home directory (`~/.pypirc`) configured with your PyPI API token or username/password. Example:
```ini
[pypi]
username = __token__
password = pypi-your-api-token-here
```
4. **Build the Package:** Generate the distribution archives:
```bash
python -m build
```
This will create `sdist` (.tar.gz) and `wheel` (.whl) files in the `dist/` directory.
5. **Upload to PyPI:** Upload the generated files using twine:
```bash
# Replace X.Y.Z with the new version number
python -m twine upload dist/twitterapi_mcp-X.Y.Z*
# Or upload all files in dist/ (be careful if old versions exist)
# python -m twine upload dist/*
```
python -m pytest
You can run specific test modules:
python -m pytest tests/test_utils.py
python -m pytest tests/test_api_client.py
๐ API Cost Considerations
TwitterAPI.io charges approximately $0.15 per 1,000 tweets retrieved. This server implements caching with a configurable TTL to reduce API costs while maintaining fresh data. The cache is particularly effective for frequently monitored influencers and popular searches.
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file twitterapi_mcp-0.1.4.tar.gz.
File metadata
- Download URL: twitterapi_mcp-0.1.4.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62d528bf572c431a5ff0cbdbbb2b1663946666ac6c4a52421b3c1903d2a0580a
|
|
| MD5 |
fc279507a9dbc7b7df1dd4423e78986e
|
|
| BLAKE2b-256 |
9cfed5e95d6487d76a4b18a5f2389256c041b5399312870330b5f336613d55f4
|
File details
Details for the file twitterapi_mcp-0.1.4-py3-none-any.whl.
File metadata
- Download URL: twitterapi_mcp-0.1.4-py3-none-any.whl
- Upload date:
- Size: 15.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
11d0998caba4484f9e8b0e84c492d882da21ea5302fb971ffc28d4aabea29c7d
|
|
| MD5 |
d262f473bc7bb000133d51cbd47c48ff
|
|
| BLAKE2b-256 |
dce5bae0f993433df0c931b9319d0c087fbfa4df41cb9f641345b946d95dd344
|