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.3.tar.gz (94.5 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.3-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: writefreely_mcp_server-0.1.3.tar.gz
  • Upload date:
  • Size: 94.5 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.3.tar.gz
Algorithm Hash digest
SHA256 a5537964a3f7ca0a1aa466ca49e7c05ee846ac00641a0abf1b31fb9efc2e29d9
MD5 50e55cdb258153c9e4cd53c286af01cb
BLAKE2b-256 8a8a05930b687a416de26b6d70efd36f5ddd0833e7683855ad49eff422a15013

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for writefreely_mcp_server-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c7e35faaf3850501b7cd7df1175ea3ed5913b9f722cb2c5fdda93a8bf2ea513d
MD5 bcffff8ef0ec166e1764575b3e9656a5
BLAKE2b-256 e4143b1df201e70c71289de2f5451973f11845d6914c3042b62bc1c8f1d0a4c1

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