xarticle-mcp
Allows saving X (Twitter) Articles as Markdown files formatted for Obsidian, with local images and videos, enabling seamless integration with Obsidian vaults.
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., "@xarticle-mcpSave this X Article: https://x.com/elonmusk/status/1234567890"
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.
xarticle-mcp
Save an X (Twitter) Article to disk as Obsidian-faithful Markdown — with images and videos downloaded locally — so it reads in Obsidian the way it reads on X.
One tool: xarticle <url> → creates <slug>/<slug>.md + images/ (+ media/ for video) in your working directory, with YAML frontmatter and local, rewritten links.
Works in any MCP client: Claude Code, Codex, Cursor, Windsurf, … It fetches with your own X session, stored encrypted on your machine.
Requirements
Node.js ≥ 18
Google Chrome or Microsoft Edge installed (Edge ships with Windows). The tool drives your existing browser — no separate browser download.
Related MCP server: riocloud-reader
Install (one line)
Add this to your MCP client config:
{
"mcpServers": {
"xarticle": { "command": "npx", "args": ["-y", "xarticle-mcp"] }
}
}Claude Code —
.mcp.jsonin your project root (or your user MCP config).Codex — add an MCP server entry with the same
command+args.Cursor / Windsurf / others — same
command+argsin their MCP settings.
Prefer running straight from source? Use
"args": ["-y", "github:aniirude/xarticle-mcp"].
macOS/Linux use the same config. The tool uses your installed Chrome/Edge; nothing else to install.
One-time login (paste 2 cookies)
X Articles need your logged-in session. There's no automated login (X rate-limits those), so you paste two session cookies once — they're stored encrypted at ~/.xarticle/.
npx -y xarticle-mcp loginIt walks you through it:
In a browser logged into X, press F12.
Application tab (Chrome/Edge) or Storage (Firefox) → Cookies →
https://x.com.Copy the value of
auth_token, paste, Enter.Copy the value of
ct0, paste, Enter.
Check it anytime with npx -y xarticle-mcp status.
Alternative (no DevTools): npx -y xarticle-mcp login --browser reuses your real Chrome profile — but you must fully quit Chrome first (it can be flaky on Windows).
Use
In your MCP client, ask:
xarticle https://x.com/<user>/status/<id>It writes, in your current working directory:
<article-slug>/
<article-slug>.md # frontmatter + body, local links
images/ # 01.jpg, 02.jpg, … (+ cover)
media/ # <slug>-01.mp4, … (videos, when downloadable)Saves to the directory your MCP client is running in. Pass
outputDirto override.Videos with a direct MP4 are embedded as
![[…mp4]](Obsidian renders a player). Stream-only (HLS) videos fall back to a poster image + a link to X.
Tool input
field | type | default | notes |
| string | — | the X Article/post URL |
| string | working dir | where to create the folder |
|
|
|
|
CLI (handy for testing)
npx -y xarticle-mcp save <url> [outputDir] # fetch without an MCP client
npx -y xarticle-mcp status # check the saved sessionNotes & caveats
Personal use. This automates access with your own session; keep it low-volume. Respect X's Terms.
Only what you can see. Articles your account can't view won't fetch.
Obsidian video embeds (
![[…mp4]]) render inside an Obsidian vault.X changes its markup. All X-DOM selectors live in
src/fetchArticle.ts— the one file to update if extraction drifts.
Develop
npm install
npm run build
npm run smoke # offline: markdown/video conversion + tools/listMIT © aniirude
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
- 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/aniirude/xarticle-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server