Skip to main content

An MCP server for interacting with WriteFreely API, enabling AI agents like Claude to perform blogging actions. Supports both self-hosted WriteFreely instances and the Write.as hosted service. This is a community-built, independent project.

Project description

writefreely-mcp-server

An MCP server for WriteFreely that enables AI agents to publish and manage content on WriteFreely instances (including self-hosted instances and Write.as).

Features

  • Publish posts (anonymous or authenticated)
  • Manage collections and posts
  • Browse public feeds
  • Support for Write.as and self-hosted WriteFreely instances

Installation

Installing uv or uvx

If you don't have uv or uvx installed, you can install them using one of the following methods:

macOS/Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows (PowerShell):

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Using Homebrew (macOS):

brew install uv

Using pip:

pip install uv

After installation, uvx will be available as part of uv. See the uv documentation for more details.

Using uvx (recommended)

uvx --from writefreely-mcp-server writefreely-mcp

Using uv

uv tool install writefreely-mcp-server
writefreely-mcp

Using pip

pip install writefreely-mcp-server

Configuration

Configure via environment variables:

  • WRITEFREELY_BASE_URL - Base URL (default: https://write.as)
  • WRITEFREELY_ACCESS_TOKEN - Access token for authentication
  • WRITEFREELY_DEFAULT_LANGUAGE - Default language (default: en)

Getting an Access Token

curl -X POST https://write.as/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"alias": "your_username", "pass": "your_password"}'

MCP Client Configuration

{
  "mcpServers": {
    "writefreely": {
      "command": "uvx",
      "args": ["--from", "writefreely-mcp-server", "writefreely-mcp"],
      "env": {
        "WRITEFREELY_BASE_URL": "https://write.as",
        "WRITEFREELY_ACCESS_TOKEN": "your_token_here"
      }
    }
  }
}

Available Tools

  • login() - Authenticate with username/password
  • publish_post() - Create and publish a new post
  • edit_post() - Update an existing post
  • delete_post() - Delete a post
  • read_post() - Read a post by ID
  • list_my_posts() - List all your posts
  • list_my_collections() - List all your collections/blogs
  • browse_collection() - Browse posts in a collection
  • browse_public_feed() - Browse the public feed

License

MIT

Links

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

writefreely_mcp_server-0.1.2.tar.gz (94.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

writefreely_mcp_server-0.1.2-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file writefreely_mcp_server-0.1.2.tar.gz.

File metadata

  • Download URL: writefreely_mcp_server-0.1.2.tar.gz
  • Upload date:
  • Size: 94.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for writefreely_mcp_server-0.1.2.tar.gz
Algorithm Hash digest
SHA256 9ba377cde7f13c717860014cb0dba8bb764edae5a138ad97ab41c43a58927ba9
MD5 4f695236b0bede331be9d34230585791
BLAKE2b-256 07ae23c10b8905f73f33c6d48186216e50e1392d67d14f291856bacd45c8d267

See more details on using hashes here.

File details

Details for the file writefreely_mcp_server-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for writefreely_mcp_server-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b1fe930749ef880be8bffeb15425314b46d1670833ade5a45f96b781b16190b5
MD5 b53bab03aa3a6c6e70274f0da3b3d27a
BLAKE2b-256 c7446d27055d5795ef80f962bafd4182a3d6fb190a23d298c446ba82ab026558

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page