Releases: achetronic/twitter-mcp
Release list
v0.2.4
Tool name prefixing
MCP tools are now automatically prefixed with a sanitized version of server.name from the config. This prevents tool name collisions when multiple MCP servers are connected to the same client.
For example, with server.name: "some-mcp", a tool registered as something is exposed to the client as some_mcp_something.
How it works
server.nameis lowercased, non-alphanumeric characters are replaced with_, and a trailing_is appended.- If
server.nameis not set, each project falls back to its own default (e.g.some-mcp.).
v0.2.3
Tiny patch. If you use tool policies but have JWT turned off, everything was getting blocked. Now it works.
🐛 Bug fixes
Tool policies with JWT disabled — Having policies configured while JWT validation was off caused every single tool
call to be denied. Fixed. Policies now run normally either way.
📝 Notes
mcp-gobumped to v0.44.1.
v0.2.2
Simplified JWT authentication. Cleaner config, less moving parts.
💥 Breaking changes
JWT config structure changed — The nested validation block is gone. Update your config:
# Before
middleware:
jwt:
enabled: true
validation:
strategy: "local"
forwarded_header: "X-Validated-JWT"
local:
jwks_uri: "https://your-idp.com/.well-known/jwks.json"
cache_interval: 5m
# After
middleware:
jwt:
enabled: true
jwks_uri: "https://your-idp.com/.well-known/jwks.json"
cache_interval: 5m✨ What's new
Local-only JWT validation — The server always validates JWTs itself against the JWKS endpoint. The forwarded strategy has been removed.
Payload in context — The decoded JWT payload is passed through context once and reused by tool policies. No double-decoding.
📝 Notes
If you were using the forwarded strategy, disable the JWT middleware (enabled: false) and handle validation at the infrastructure level.
v0.2.1
Linter fixes, no functional changes.
🐛 Bug fixes
Unchecked error returns — ScheduleStore.Update calls now properly check and propagate errors.
Unnecessary fmt.Sprintf — Removed redundant fmt.Sprintf wrappers in JWT middleware error responses.
Defer in infinite loop — resp.Body.Close() was deferred inside an infinite loop and would never run. Now closed explicitly after use.
v0.2.0
New scheduling system and search improvements.
✨ New features
Tweet scheduling — Queue tweets and threads for later publishing. Stored in a local YAML file so nothing gets lost if the server restarts. The AI is always in the loop — nothing publishes automatically. New tools: schedule_tweet, schedule_update, schedule_delete, schedule_list, schedule_get_publishable, schedule_publish.
🐛 Bug fixes
search_topics returning empty — Was using max_results=5 but Twitter requires a minimum of 10. Fixed default and added a floor.
Release pipeline downloading wrong artifacts — The Docker build artifact was being included in the release download, causing it to fail. Now only twitter-mcp-* artifacts are downloaded.
🔧 Improvements
Fresher search results — Searches now only return tweets from the last 24 hours, sorted by recency. Heat scores are now much more representative of what's happening now.
📝 Notes
Updated mcp-go from v0.43.2 to v0.44.0.
v0.1.1
Fix to make it compile with newer mcp-go versions.
🐛 Bug fixes
Wasn't compiling — The mcp-go library changed how tool arguments are accessed. Now it works.
📝 Notes
Updated mcp-go from v0.43.2 to v0.44.0.
v0.1.0
First release. A Model Context Protocol server that lets AI assistants interact with Twitter/X—read timelines, post tweets, analyze trends, and more.
✨ What's new
Reading tools — Fetch your home timeline, mentions, search tweets, explore trending topics by location, view user profiles and their tweets, access bookmarks and DMs.
Writing tools — Post tweets and threads, reply to conversations, like/unlike, retweet/undo, manage bookmarks, follow/unfollow users, send direct messages.
Topic analysis — Compare multiple topics at once with a heat score (0-100) that combines tweet volume and engagement. Useful for spotting what's trending in your niche.
Two transport modes — STDIO for simple local setups, HTTP for production with full auth support.
Security (HTTP mode) — JWT validation with JWKS caching, tool-level access control using CEL expressions, policies based on JWT claims (groups, scopes), OAuth 2.0 metadata endpoints (RFC 9728), and access logging with header redaction.
📦 Platforms
Binaries available for Linux (amd64, arm64), macOS (amd64, arm64), and Windows (amd64).
Docker images at ghcr.io/achetronic/twitter-mcp:v0.1.0 for linux/amd64 and linux/arm64.