Skip to main content
Glama
laxmena

writefreely-mcp-server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
WRITEFREELY_BASE_URLNoBase URL of the WriteFreely instancehttps://write.as
WRITEFREELY_ACCESS_TOKENNoAccess token for authentication
WRITEFREELY_DEFAULT_LANGUAGENoDefault language for postsen

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
hello_writefreelyA

Simple test tool - confirms the WriteFreely MCP server is running.

loginA
    Authenticate with WriteFreely and obtain an access token.

    If WRITEFREELY_ACCESS_TOKEN environment variable is set, this tool will use
    that token automatically without requiring username and password.
    You can provide username and password to authenticate with a different
    account, or use the environment variable for better security
    (recommended for production).

    Args:
        username: Your WriteFreely username
            (optional if WRITEFREELY_ACCESS_TOKEN is set)
        password: Your WriteFreely password
            (optional if WRITEFREELY_ACCESS_TOKEN is set)

    Returns:
        Success message with access token, or information about existing token
    
publish_postA
    Create and publish a new post on WriteFreely.
    Supports anonymous posts or publishing to a specific collection/blog.

    Args:
        content:     The main body of the post (Markdown supported)
        title:       Optional post title
        access_token: Access token from login() or WRITEFREELY_ACCESS_TOKEN env var
                     Leave empty for anonymous publishing or to use env var token
        collection:  Optional blog/collection alias to publish into
                     (only works with access_token)

    Returns:
        Success message with post URL or error
    
edit_postA
    Update an existing post's content and/or title.

    Args:
        post_id: The ID of the post to update
        content: The new body content for the post (Markdown supported)
        title: Optional new title (leave None to keep existing title)
        access_token: Access token from login() or WRITEFREELY_ACCESS_TOKEN env var
                     (optional if token is set via env var)
        edit_token: Edit token for anonymous posts (from publish_post response)

    Returns:
        Success message with updated post URL or error
    
delete_postA
    Permanently delete a post.

    Args:
        post_id: The ID of the post to delete
        access_token: Access token from login() or WRITEFREELY_ACCESS_TOKEN env var
                     (optional if token is set via env var)
        edit_token: Edit token for anonymous posts (from publish_post response)

    Returns:
        Success or error message
    
read_postA
    Retrieve the content of an existing post by its ID.

    Args:
        post_id: The ID of the post (or slug for public posts)
        access_token: Optional - needed only for private/draft posts
                     Can also use WRITEFREELY_ACCESS_TOKEN env var

    Returns:
        Post title + body (or error message)
    
list_my_postsA
    Retrieve all posts for the authenticated user.

    Args:
        access_token: Access token from login() or WRITEFREELY_ACCESS_TOKEN env var
                     (optional if token is set via env var)

    Returns:
        Formatted list of all user's posts with IDs, titles, and URLs
    
list_my_collectionsA
    Get all blogs/collections owned by the authenticated user.

    Args:
        access_token: Access token from login() or WRITEFREELY_ACCESS_TOKEN env var
                     (optional if token is set via env var)

    Returns:
        Formatted list of all user's collections with aliases, titles, and URLs
    
browse_collectionA
    List posts in a specific collection/blog.

    Args:
        collection_alias: The alias/name of the collection to browse
        page: Page number for pagination (default: 1, returns 10 posts per page)

    Returns:
        Formatted list of posts in the collection
    
browse_public_feedA
    Read posts from the public read.write.as feed.

    Args:
        skip: Number of posts to skip for pagination
            (default: 0, returns 10 posts per request)

    Returns:
        Formatted list of posts from the public feed
    

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/laxmena/writefreely-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server