mcpField
M
MCP X Server

MCP X Server

Local
github.com/wylu1037Social Media0Updated 45w ago

About MCP X Server

MCP X Server helps users turn a sentence or topic into a refined tweet and publish it to X. It is an MCP server for drafting and posting social updates.

Key features

  1. 01Draft tweets from a sentence or topic
  2. 02Refine tweet wording
  3. 03Publish tweets to X
  4. 04Run over STDIO or SSE

Use cases

  1. 01Turn a topic into a draft tweet
  2. 02Polish a tweet before publication
  3. 03Publish a prepared update to X

MCP support

The MCP server exposes tweet drafting, refinement, and publishing to X for MCP clients. The README describes STDIO and SSE connection options.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"mcp_x_server": {
"command": "uvx",
"args": [
"mcp-x-server"
],
"env": {
"CONSUMER_KEY": "<CONSUMER_KEY>",
"CONSUMER_SECRET": "<CONSUMER_SECRET>",
"ACCESS_TOKEN": "<ACCESS_TOKEN>",
"ACCESS_SECRET": "<ACCESS_SECRET>",
"DEEPSEEK_API_KEY": "<DEEPSEEK_API_KEY>"
}
}
}
}
Run commanduvx mcp-x-server
Environment variables to set
CONSUMER_KEYSecret
CONSUMER_SECRETSecret
ACCESS_TOKENSecret
ACCESS_SECRETSecret
DEEPSEEK_API_KEYSecret

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypimcp-x-server

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MCP X Server

What can you do with MCP X Server? Give it a sentence or a topic, and it will help you write and refine a tweet, then publish it to X.

How to run with STDIO

Local

Configure the MCP server in mcp.json.

{
    "mcpServices": {
        "x-mcp": {
            "command": "uv",
            "args": [
                "run",
                "--with",
                "fastmcp",
                "--with",
                "pydantic-ai",
                "--with",
                "pydantic-ai-slim[duckduckgo,openai]",
                "--with",
                "dotenv",
                "--with",
                "python-twitter-v2",
                "fastmcp",
                "run",
                "mcp_x_server/server.py"
            ],
            "env": {
                "CONSUMER_KEY": "*******************",
                "CONSUMER_SECRET": "*******************",
                "ACCESS_TOKEN": "*******************",
                "ACCESS_SECRET": "*******************",
                "DEEPSEEK_API_KEY": "*******************"
            }
        }
    }
}
Docker

Configure the MCP server in mcp.json.

{
    "mcpServices": {
        "x-mcp-docker": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "--name",
          "mcp-x-server",
          "-e",
          "CONSUMER_KEY",
          "-e",
          "CONSUMER_SECRET",
          "-e",
          "ACCESS_TOKEN",
          "-e",
          "ACCESS_SECRET",
          "-e",
          "DEEPSEEK_API_KEY",
          "wylu1037/mcp-x-server:latest"
        ],
        "env": {
          "CONSUMER_KEY": "********************************",
          "CONSUMER_SECRET": "********************************",
          "ACCESS_TOKEN": "********************************",
          "ACCESS_SECRET": "********************************",
          "DEEPSEEK_API_KEY": "sk-********************************"
        }
      }
    }
}
UVX

Configure the MCP server in mcp.json.

{
    "mcpServices": {
        "mcp-x-server": {
        "command": "uvx",
        "args": [
          "mcp-x-server"
        ],
        "env": {
          "CONSUMER_KEY": "********************************",
          "CONSUMER_SECRET": "********************************",
          "ACCESS_TOKEN": "********************************",
          "ACCESS_SECRET": "********************************",
          "DEEPSEEK_API_KEY": "sk-********************************"
        }
      }
    }
}

Run with SSE

Run MCP server

fastmcp run --transport sse mcp_x_server/server.py

Configure the MCP server in mcp.json.

{
    "mcpServices": {
        "mcp-x-server": {
            "url": "http://localhost:8000/sse"
        }
    }
}

Publish to PyPI(发布到 Python 包管理中心)

推荐使用 uv 一站式完成构建和发布,本项目已经包含 pyproject.toml 与 uv.lock,适合这种方式。

1. 安装 uv(如尚未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh

或根据官方文档选择适合你平台的安装方式。

2. 更新版本号

在 pyproject.toml 的 [project] 部分更新 version 字段,避免与已发布版本重复。

你也可以使用 uv 自动修改版本号,例如:

uv version --bump patch
3. 清理旧的构建产物(可选)
rm -rf dist/ build/ *.egg-info
4. 使用 uv 构建发行包
uv build

构建完成后,发行包会生成在 dist/ 目录下(.whl 和 .tar.gz)。

5. 配置 PyPI 凭据

推荐使用 PyPI 的 API Token(而不是用户名/密码),并通过环境变量提供给 uv:

export UV_PUBLISH_TOKEN="pypi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
6. 使用 uv 发布到 PyPI
uv publish

如需发布到 TestPyPI,可在 pyproject.toml 中配置 [[tool.uv.index]],然后:

uv publish --index testpypi

说明:

  • 传统的 python -m build + twine upload 流程同样可用,只是这里更推荐使用 uv;
  • 本仓库还保留了 python setup.py upload 命令,会自动构建并通过 twine 上传包,同时推送 git tag,一般仅在你明确需要旧流程时使用。

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.