Slima

io.github.slima-aiPublished by GitHub account slima-aiv0.1.13Updated Oct 26, 2026

MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowFiles & StorageAI & ML

Overview

AI-generated overview

Slima MCP connects an AI assistant to Slima, an AI writing IDE for novelists, so it can manage books, edit manuscript files and run AI beta-reader feedback.

What you can do
  • Create, list and inspect books, including file structure and word-count statistics
  • Read, search and semantically search manuscript files and chapters
  • Edit, write, create, append to and delete files, with each write kept as a version-history commit
  • Update structured files such as relationship maps, beat boards, timelines, screenplays and world maps
  • Leave, list and resolve author notes and editorial comment threads
  • Run AI Beta Reader analysis on a chapter from a chosen reader persona and collect the report
When to use it
Useful for authors who keep their novels or scripts in Slima and want an assistant to draft, revise, search and comment on manuscripts without leaving the chat. Also suited to getting structured reader feedback on chapters.
Requirements
Either the hosted remote endpoint with OAuth sign-in, or the local npm package slima-mcp run through npx with Node.js. Local use needs a Slima API token in SLIMA_API_TOKEN or a one-time browser auth that saves credentials to disk. Network access to the Slima API is required.
Before you install
The API token grants access to your Slima library and is stored locally in a credentials file; revoke it from Slima settings if exposed. Many tools write, replace, append to or delete files, and create books, notes and comments, though writes are recorded in version history. analyze_chapter spends the author's credits. Script Studio books restrict writes to planning paths and keep structured files read-only.

Installation

In SourceWeft

  1. Open Slima in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.slima-ai%2Fslima/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "slima": {
      "type": "http",
      "url": "https://mcp.slima.ai/mcp"
    }
  }
}

README

Slima MCP

[npm version] [License: MIT]

MCP (Model Context Protocol) Server for Slima - AI Writing IDE for Novel Authors.

Connect your Slima books to any MCP-compatible AI tool - one server, all platforms.

Supported Platforms

Desktop Applications (Local MCP - stdio)

PlatformStatusNotes
Claude Desktop✅Native MCP support
ChatGPT Desktop✅Developer Mode (2025.10+)
Gemini CLI✅Native MCP support
Cursor✅Native MCP support
VS Code✅Via MCP extensions

Web Applications (Remote MCP - HTTP)

PlatformStatusNotes
Claude.ai✅OAuth login, no token needed
ChatGPT Web✅OAuth login, no token needed

MCP became the industry standard in December 2025 when Anthropic, OpenAI, and Block co-founded the Agentic AI Foundation under the Linux Foundation.

Features

Book Management

  • Create new books
  • List and view your books
  • Get file/folder structure
  • Track writing statistics

File Operations

  • Read any file by path
  • Edit specific text (search & replace)
  • Write (replace) file content
  • Create new files
  • Delete files
  • Append content to files
  • Search across all files

AI Beta Reader

  • Get feedback from virtual reader personas
  • Analyze chapters with different reader perspectives

Quick Start

Pick the path that matches how you use AI:

Recommended: claude.ai / ChatGPT Web (auto-updating)

If you chat with Claude or ChatGPT in a browser, this is the easiest and most future-proof option. Configure once and you will automatically get every Slima MCP update — no upgrade commands, no config edits.

MCP URL: https://mcp.slima.ai/mcp

claude.ai (Pro / Max / Team / Enterprise)
  1. Sign in at claude.ai.
  2. Open Settings → Connectors (or Integrations depending on your plan).
  3. Click Add custom connector.
  4. Fill in:
    • Name: Slima
    • URL: https://mcp.slima.ai/mcp
  5. Click Connect → you will be redirected to slima.ai to approve → return to claude.ai.
  6. The Slima tools icon appears in your chat input. You're done.
ChatGPT (Plus / Pro, Developer Mode)
  1. Sign in at chatgpt.com.
  2. Open Settings → Connectors → Advanced and toggle Developer Mode on (2025.10+).
  3. Back in Connectors, click Create → Custom MCP Server.
  4. Fill in:
    • Name: Slima
    • Server URL: https://mcp.slima.ai/mcp
    • Authentication: OAuth
  5. Click Create → approve the OAuth flow.

After setup, Slima features roll out automatically on your next conversation. No restarts, no reinstalls.


Local: Claude Desktop / Cursor / Gemini CLI

Use this if you want offline-friendly operation, faster startup, or you need to run MCP alongside other stdio servers.

Recommended config — pinned to the major version so you pick up new features automatically but never break on a 1.0 release:

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{  "mcpServers": {    "slima": {      "command": "npx",      "args": ["-y", "slima-mcp@0"],      "env": {        "SLIMA_API_TOKEN": "slima_your_token_here"      }    }  }}

Get your token from Account settings → Authorized Apps or run npx slima-mcp@0 auth once to save it to disk.

Cursor
json
{  "mcpServers": {    "slima": {      "command": "npx",      "args": ["-y", "slima-mcp@0"],      "env": {        "SLIMA_API_TOKEN": "slima_your_token_here"      }    }  }}
Gemini CLI
bash
gemini mcp add slima --command "npx -y slima-mcp@0"

Or install it as a Gemini CLI extension (it asks for your API token once and keeps it in the system keychain):

bash
gemini extensions install https://github.com/slima-ai/slima-mcp

Why slima-mcp@0 instead of slima-mcp / slima-mcp@latest? Using @0 pins to the current major version — npx fetches new 0.x.y releases automatically (so you get features + bug fixes), but when we ship 1.0.0 with breaking changes you won't silently pick it up without updating your config. We'll announce the @1 switch in the release notes.

⚠️ This only holds if you do not also have a global slima-mcp install. npx pkg@<range> will happily satisfy the range from a package already on your PATH and never contact the registry at all. Measured on 2026-09-09 with a global 0.2.0 present and 0.3.0 on npm:

commandresolved
npx -y slima-mcp@00.2.0 — used the global install
npx -y slima-mcp0.2.0 — same
npx -y slima-mcp@latest0.3.0 — a dist-tag forces a registry lookup
npx -y [email protected]0.3.0 — the global can't satisfy an exact newer version

So a stale global install makes the npx form silently stop upgrading, while the server keeps telling you to upgrade. Remove it — see below.

Migrating from a global install

If you already installed globally with npm install -g slima-mcp:

bash
# Remove the old global install — REQUIRED, not just tidiness.# Leaving it in place makes `npx -y slima-mcp@0` resolve to the old global copy# forever (see the warning above), so you'd stay outdated while being told to upgrade.npm uninstall -g slima-mcp
# Then change your config `command` from "slima-mcp" to the npx form above, and restart the client.# Verify: `npx -y slima-mcp@0 --version` must print the version shown by `npm view slima-mcp version`.

⚠️ Check every place you may have installed it. A global install can exist per Node version manager environment and per OS — on WSL setups it is common to have one under nvm and one under Windows' AppData/Roaming/npm, at two different versions, with only one of them on the PATH your MCP client actually uses.

Or, if you want to stay on a global install, remember to periodically run:

bash
npm install -g slima-mcp@latest

Otherwise your local client will drift from the MCP tools/schema the Slima backend exposes.

Self-host (advanced)

You can also clone this repo and deploy the Cloudflare Worker yourself. See wrangler.toml + npm run deploy:worker. Not required for normal use.


Remote MCP Security

The hosted Remote MCP Server at https://mcp.slima.ai/mcp uses:

  • OAuth 2.0 + PKCE for authentication — no tokens copy-pasted.
  • No secrets stored server-side — credentials never leave Slima's auth server.
  • Session-based: OAuth tokens are stored in Cloudflare KV, scoped per session.
  • Revocable anytime from Account settings → Authorized Apps: revoking an app takes effect on its next request.

Book Types: Writing Studio vs Script Studio

Slima books come in two flavors, distinguished by the book_type field. MCP behaves slightly differently for each:

📖 Writing Studio (book_type: "book")📝 Script Studio (book_type: "script")
Creation via MCP✅ create_book works❌ use the Slima app UI
Read (any file)✅✅
Write / Edit / Delete✅ any path✅ only under .script_studio/planning/**/*
Structured files (series.json, *.character, *.scene, *.storyline, *.note, *.location, season.json, episode.json)n/a❌ read-only via MCP — edits must go through the Script Studio UI
analyze_chapter (AI Beta Reader)✅❌ not yet supported on structured scenes
search_contentall filesstructured files excluded by default; pass include_structured: true to include them

For per-book details, ask your AI client to read the resource slima://books/{book_token}/schema — it returns a JSON spec of exactly which paths are writable/read-only for that specific book.

list_books tags every book with its studio icon (📝 / 📖) so you (and the AI) can tell them apart at a glance.


Available Tools

39 tools. R = read-only (never changes your book); W = changes something and says so in its description. Reads and writes are always separate tools.

Start here (teaching)

ToolR/WDescription
get_capabilitiesRWhat this server supports: writable file types, content types, tools, guides
list_guidesRList the Slima guides and when to load each
load_guideRLoad one guide in full
list_writing_skillsRList the writing craft procedures (develop a character, revise a scene, ...)
load_writing_skillRLoad one writing skill in full

Book Management

ToolR/WDescription
create_bookWCreate a new Writing Studio book in your library
list_booksRList the books in your library (paginated)
get_bookRGet details of a specific book
get_book_structureRGet the file/folder structure of a book
get_writing_statsRGet word-count totals for a book

File Operations

ToolR/WDescription
read_fileRRead the content of any file by path
get_chapterRRead a chapter by path or file name
edit_fileWReplace a specific text segment (search and replace)
write_fileWReplace the entire content of an existing file
create_fileWCreate a new file in a book
delete_fileWDelete a file or an empty folder
append_to_fileWAppend content to the end of a file
search_contentRSearch for text across all files
semantic_searchRFind passages by meaning rather than exact words

Every write is a commit in the book's version history, so it can be reviewed and reverted.

Structured Files (one field at a time)

ToolR/WDescription
view_relationship_mapRSee a .map relationship graph as a picture plus a readable summary
update_relationship_mapWChange a relationship map (.map)
update_beat_boardWChange a beat board (.beats)
update_timelineWChange a timeline (.timeline)
update_scriptWChange a screenplay (.script)
update_world_mapWChange a world map (.geomap)

Notes and Comments

ToolR/WDescription
list_notesRThe author's margin notes on a book
create_noteWLeave a note beside the manuscript (does not touch the prose)
list_commentsREditorial comment threads, open and resolved
create_commentWLeave an editorial comment
resolve_commentWMark a comment thread addressed
reopen_commentWReopen a resolved comment thread

AI Beta Reader

ToolR/WDescription
list_personasRList the virtual reader personas
analyze_chapterWRun AI Beta Reader feedback on a chapter from one persona (spends the author's credits)
get_reader_testRCollect a Beta Reader report that was still running

Teams

ToolR/WDescription
list_teamsRList the teams this account belongs to
get_teamROne team: its members and roles
list_team_rulesRThe team's coaching rules (house style)
list_team_memoriesRWhat the team has established: recurring characters, naming conventions, decisions
list_team_skillsRThe team's own writing procedures

Usage Examples

Once configured, you can ask your AI:

Book & Content:

  • "Create a new book called 'My Novel'"
  • "List my books in Slima"
  • "Show me the structure of my novel"
  • "Read chapter 3 of my book"
  • "What are my writing stats?"

File Operations:

  • "Read the character profile for my protagonist"
  • "Edit chapter 1 and change 'John' to 'James'"
  • "Create a new file called worldbuilding.md with notes about the magic system"
  • "Search for all mentions of 'blue eyes' in my book"
  • "Append this new paragraph to chapter 5"

AI Feedback:

  • "Get feedback on chapter 5 from a young reader perspective"
  • "Analyze my opening scene from a critic's perspective"

CLI Commands

bash
slima-mcp auth      # Authenticate with browser (recommended)slima-mcp status    # Check authentication statusslima-mcp logout    # Remove saved credentialsslima-mcp --help    # Show helpslima-mcp --version # Show version

Token is stored in ~/.slima/credentials.json with secure permissions.

Environment Variables

VariableRequiredDefaultDescription
SLIMA_API_TOKENNo*-Your Slima API token
SLIMA_API_URLNohttps://api.slima.aiAPI endpoint (for development)
DEBUGNofalseEnable debug logging

*Not required if you used slima-mcp auth

Development

Local CLI Development

bash
# Clone the repositorygit clone https://github.com/slima-ai/slima-mcp.gitcd slima-mcp
# Install dependenciesnpm install
# Build CLInpm run build
# Run testsnpm test
# Run in development modenpm run dev

Cloudflare Worker Development

bash
# Build the Workernpm run build:worker
# Run Worker locallynpm run dev:worker
# Deploy to Cloudflarenpm run deploy:worker
# Deploy to the test environment (test-mcp.slima.ai)npm run deploy:worker:test

Project Structure

slima-mcp/├── src/│   ├── core/           # Shared core modules│   │   ├── api/        # Slima API Client│   │   ├── tools/      # MCP Tool implementations│   │   └── utils/      # Utilities and errors│   ├── cli/            # CLI entry point (stdio transport)│   │   ├── index.ts    # CLI main│   │   ├── auth.ts     # Authentication commands│   │   └── server.ts   # MCP Server for CLI│   └── worker/         # Cloudflare Worker (HTTP transport)│       ├── index.ts    # Worker entry point│       └── oauth.ts    # OAuth 2.0 + PKCE client├── wrangler.toml       # Cloudflare Worker config├── tsup.config.ts      # CLI build config└── tsup.worker.config.ts # Worker build config

Security

  • API tokens are stored locally and never shared
  • All communication with Slima API uses HTTPS
  • Tokens can be revoked anytime from Slima settings

Release & Deployment

npm (Automatic)

Merge to main with a version bump in package.json triggers automatic npm publish via GitHub Actions.

bash
# 1. Bump version on dev branchnpm version patch   # 0.1.10 → 0.1.11
# 2. Merge to maingit checkout main && git merge dev && git push
# 3. CI runs tests → publish.yml publishes to npm + creates git tag

Cloudflare Worker (Manual)

Worker deployment is separate from npm, and nothing triggers it automatically. Publishing to npm does NOT update mcp.slima.ai. Remote clients (claude.ai / ChatGPT connectors) talk to the Worker, so they keep running the old tool set until someone runs this by hand:

bash
npm run deploy:worker:test   # Test  (test-mcp.slima.ai -> test-api.slima.ai)npm run deploy:worker        # Prod  (mcp.slima.ai      -> api.slima.ai)

Deploy test first and check curl https://test-mcp.slima.ai/ | jq .version before doing prod; the same one-liner against mcp.slima.ai is how you tell whether the Worker is behind npm at all.

2026-09-09: the Worker sat on 0.2.0 for four and a half months — it was last deployed the same day npm 0.2.0 shipped, so every change after that reached npm users and no connector users. There is no alarm for this; the version endpoint is the only signal.

There used to be a deploy:worker:preview script pointing at an [env.preview] block. It was removed on 2026-09-09: its KV id was the literal placeholder string, staging-api.slima.ai does not resolve, and — worst — it defined no routes. routes is an inheritable key in wrangler, so that command would have inherited the top-level mcp.slima.ai custom domain and pointed production's hostname at the preview Worker. The real staging environment is [env.test].

MCP Registry (Manual)

To publish/update the server listing on the MCP Registry:

bash
mcp-publisher login githubmcp-publisher publish

Requires mcpName in package.json and server.json in repo root.

Operational Notes

Debugging Worker OAuth

When troubleshooting claude.ai or ChatGPT connector issues:

bash
# Live logs from production Workerwrangler tail slima-mcp

All OAuth endpoints log key parameters (client_id, redirect_uri, token prefix, etc.) to help trace the flow.

Worker OAuth Flow (claude.ai / ChatGPT)

Client POST /mcp → 401 + WWW-Authenticate header  → Client GET /.well-known/oauth-protected-resource  → Client GET /.well-known/oauth-authorization-server  → Client POST /register (DCR)  → Client redirects user to GET /authorize    → Worker redirects to Rails OAuth    → User authorizes → Rails redirects to Worker /callback    → Worker issues auth code → redirects to client callback  → Client POST /token (exchange code for access_token)  → Client POST /mcp (Authorization: Bearer {access_token})

Known Constraints

  • Worker Bearer token validation accepts all non-empty tokens (not just slima_ prefix) to support OAuth-issued tokens. Rails API performs actual validation.
  • getTokenFromSession() checks Authorization header first, then falls back to cookie session.
  • MCP Inspector (npx @modelcontextprotocol/inspector) is useful for testing the full OAuth flow independently.

License

MIT

Links

Source: README.md at commit f8e71b9

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v0.1.13LatestSep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts