Nekoweb MCP Server
This server lets you inspect and manage Nekoweb sites and files through an MCP client.
Get site info, list your sites, and check API rate limits
Browse folders recursively and read text, image, or binary file metadata
Create files/folders, write/overwrite full text files, move/rename, and permanently delete
Upload files from local paths or base64 content
Import/deploy .zip archives into site folders
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Nekoweb MCP Server What's on my Nekoweb site?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Nekoweb MCP Server
Installation
Prerequisites
Node.js 20.3 or newer. The Claude Desktop extension doesn't need it, because Claude Desktop includes its own.
A Nekoweb API key (required). Log in to Nekoweb, open https://nekoweb.org/api and generate a key. The key gives full access to your site's files, so keep it private.
A Nekoweb session token (optional). Without it, everything in Nekoweb's official API works: your files, uploads, site info and limits. With it, you also get site settings, tags, stats history, followers, your feed, following sites and search results that show who you follow. See Getting your session token.
Getting your session token
The session token is the login cookie your browser uses on nekoweb.org. The server uses it to read and change things that aren't in the official API.
Log in at https://nekoweb.org in your browser.
Open the developer tools (F12) and go to Application → Cookies (Chrome, Edge) or Storage → Cookies (Firefox), then pick
https://nekoweb.org.Copy the value of the cookie named
token.Put it in your MCP config as
NEKOWEB_SESSION_TOKEN, as in the examples below, and restart your client.
The session token is more powerful than the API key: it can do anything you can do while logged in, including changing your account settings. Keep it private, and never paste it into a chat with your assistant. It stops working when the session ends, for example when you log out, and then you need to copy a new one.
Don't commit them. If your MCP config lives in a project (e.g.
.vscode/mcp.json), use your client's secret prompt, like the VS Code button above does, instead of pasting them into the file.Regenerate the key if it leaks. Generating a new key at https://nekoweb.org/api makes the old one stop working. For a leaked session token, log out of nekoweb.org to end that session.
Limit local uploads. Set
NEKOWEB_LOCAL_ROOTto your site project's folder so the assistant can only upload files from there. See Configuration.
The examples below include both the API key and the session token. If you don't want the session token, leave it out: each client has an API key only version.
Claude Code
claude mcp add nekoweb -e NEKOWEB_API_KEY=your-api-key -e NEKOWEB_SESSION_TOKEN=your-session-token -- npx -y nekoweb-mcp-serverclaude mcp add nekoweb -e NEKOWEB_API_KEY=your-api-key -- npx -y nekoweb-mcp-serverClaude Desktop
Download nekoweb-mcp-server.mcpb and open it. Claude Desktop shows an install screen that asks for your API key and, optionally, your session token. Leave the session token empty to skip it.
Open Settings → Developer → Edit Config, add the server to claude_desktop_config.json, then restart Claude Desktop:
{
"mcpServers": {
"nekoweb": {
"command": "npx",
"args": ["-y", "nekoweb-mcp-server"],
"env": {
"NEKOWEB_API_KEY": "your-api-key",
"NEKOWEB_SESSION_TOKEN": "your-session-token"
}
}
}
}For the API key only, remove the NEKOWEB_SESSION_TOKEN line (and the comma before it).
VS Code
Use the install button above. VS Code asks for your API key and session token when the server first starts; leave the session token empty to skip it. Or add this to .vscode/mcp.json or your user MCP configuration:
{
"inputs": [
{ "type": "promptString", "id": "nekoweb_api_key", "description": "Nekoweb API key", "password": true },
{
"type": "promptString",
"id": "nekoweb_session_token",
"description": "Optional: Nekoweb session token. Leave empty to skip",
"password": true
}
],
"servers": {
"nekoweb": {
"command": "npx",
"args": ["-y", "nekoweb-mcp-server"],
"env": {
"NEKOWEB_API_KEY": "${input:nekoweb_api_key}",
"NEKOWEB_SESSION_TOKEN": "${input:nekoweb_session_token}"
}
}
}
}For the API key only, remove the nekoweb_session_token input and the NEKOWEB_SESSION_TOKEN line.
Cursor
Use the install button above, then replace your-api-key and your-session-token with yours, or delete the NEKOWEB_SESSION_TOKEN line to use the API key only. Or add this to ~/.cursor/mcp.json:
{
"mcpServers": {
"nekoweb": {
"command": "npx",
"args": ["-y", "nekoweb-mcp-server"],
"env": {
"NEKOWEB_API_KEY": "your-api-key",
"NEKOWEB_SESSION_TOKEN": "your-session-token"
}
}
}
}For the API key only, remove the NEKOWEB_SESSION_TOKEN line (and the comma before it).
Other MCP hosts
Any host that supports local (stdio) MCP servers works. Configure it to run npx -y nekoweb-mcp-server with the NEKOWEB_API_KEY environment variable set, and optionally NEKOWEB_SESSION_TOKEN. Most hosts use the same JSON format as the Claude Desktop and Cursor examples above.
Build from source
Clone this repository and run npm install and npm run build. Then use node /path/to/nekoweb-mcp-server/build/index.js as the command in your host's config instead of npx -y nekoweb-mcp-server.
Check that it works
Ask your assistant: "What's on my Nekoweb site?" It should list your site's files.
Related MCP server: krexel-mcp
Configuration
Environment variable | Required | Description |
| Yes | Your API key from https://nekoweb.org/api. Without it, only public site lookups work. |
| No | A folder on your computer. When set, the upload tools can only read files inside it. When unset, any file you name can be uploaded. |
| No | Your Nekoweb login session, for features the official API doesn't have, like site settings, tags, stats history, followers and your feed. See Getting your session token. |
See Getting your session token for how to get the session token.
Tools
Tools marked read-only never change your site. The others change files, so most clients ask for your approval before running them.
nekoweb_get_site_info - Get a site's title, domain, views, followers, update count and dates (read-only)
site: Domain of another public site, e.g.yoursite.nekoweb.org. Omit for your own site (string, optional)response_format:markdown(default) orjson(string, optional)
nekoweb_list_sites - List every site on your account, with its stats and the folder that holds its files (read-only)
response_format:markdown(default) orjson(string, optional)
nekoweb_get_limits - Show how many API requests you have left and when each limit resets (read-only)
response_format:markdown(default) orjson(string, optional)
nekoweb_list_folder - List the files and folders in a folder (read-only)
path: Folder to list, e.g./mysite.nekoweb.org/blog. Defaults to/(string, optional)recursive: Also list subfolders. Each subfolder uses one API request, up to 25 per call (boolean, optional)max_depth: How many levels of subfolders to list, 1–10, default 3 (number, optional)limit: Maximum entries to return, 1–500, default 100 (number, optional)offset: Entries to skip, for paging through large folders (number, optional)response_format:markdown(default) orjson(string, optional)
nekoweb_read_file - Read a file's source exactly as stored, SSI directives included. Images up to 5 MB are shown as images (read-only)
path: File to read, e.g./mysite.nekoweb.org/index.html(string, required)offset: Character to start reading from, for long files (number, optional)max_chars: Maximum characters to return, default 20,000 (number, optional)
nekoweb_write_file - Create a text file or replace its whole content
path: File to write, e.g./mysite.nekoweb.org/index.html(string, required)content: The complete new content of the file (string, required)mode:create_or_overwrite(default) writes the file whether or not it exists;edit_existingfails if it doesn't (string, optional)
nekoweb_create - Create an empty file or a new folder
path: Path to create, e.g./mysite.nekoweb.org/blog(string, required)is_folder:truefor a folder,falsefor an empty file (boolean, required)
nekoweb_move - Rename or move a file or folder
from: Current path (string, required)to: New path. Its parent folder must exist (string, required)
nekoweb_delete - Permanently delete a file or folder, including everything inside it
path: Path to delete (string, required)
nekoweb_upload_file - Upload files of any type into a folder, replacing files with the same name. Files over 95 MB are uploaded in chunks automatically
folder: Destination folder, e.g./mysite.nekoweb.org/images. It must already exist (string, optional)local_paths: Full paths of files on your computer (string[], optional)files: Files given as base64, each with anameandcontent_base64(object[], optional)
nekoweb_import_zip - Upload a
.zipand extract it into a folder, replacing files with the same pathsfolder: Folder to extract into, e.g./mysite.nekoweb.org(string, optional)zip_local_path: Full path of a.zipon your computer (string, optional)zip_base64: The.zipas base64, if not usingzip_local_path(string, optional)
nekoweb_get_site_settings - Show the folder a site serves and its options: main site, nice links, strict slashes, listed in Explore, posts in the global feed, HTTP access and NSFW (read-only)
site: Domain of one of your sites, e.g.mysite.nekoweb.org. Omit for the site the API key belongs to (string, optional)response_format:markdown(default) orjson(string, optional)
nekoweb_update_site_settings - Change some of a site's settings; the ones you leave out stay as they are. Turning nice links off or changing the folder can break links to your site
site: Domain of one of your sites. Omit for the site the API key belongs to (string, optional)main,nice_links,strict_slash,visible,show_in_global_feed,support_http,nsfw: Turn an option on or off (boolean, optional)folder: Folder the site serves its files from, e.g./mysite.nekoweb.org. It must exist (string, optional)
nekoweb_get_tags - List the tags on one of your sites, and how many of the allowed tags it uses (read-only)
site: Domain of one of your sites, e.g.mysite.nekoweb.org. Omit for the site the API key belongs to (string, optional)response_format:markdown(default) orjson(string, optional)
nekoweb_add_tag - Add a tag to one of your sites. Sites can have up to 10 tags
site: Domain of one of your sites. Omit for the site the API key belongs to (string, optional)tag: The tag, 2 to 32 characters, e.g.pixel-art(string, required)
nekoweb_remove_tag - Remove a tag from one of your sites
site: Domain of one of your sites. Omit for the site the API key belongs to (string, optional)tag: The tag to remove (string, required)
nekoweb_get_stats_history - Get the day-by-day history of a site's views, followers and updates, like the charts on its statistics page (read-only)
site: Domain of one of your sites. Omit for the site the API key belongs to (string, optional)period:month(default),yearorall. Nekoweb only showsyearandallon paid tiers (string, optional)response_format:markdown(default) orjson(string, optional)
nekoweb_list_followers - List the sites that follow one of your sites, with each one's title, link, screenshot and whether you follow it back (read-only)
site: Domain of one of your sites. Omit for the site the API key belongs to (string, optional)sort:follow_date(default),recently_updatedormost_followed(string, optional)page: Fetch only this page. Omit to fetch every page, up to 20 (number, optional)response_format:markdown(default) orjson(string, optional)
nekoweb_search_sites - Search the sites on Nekoweb's Explore page by name or tag. With the session token, results also say which sites you follow (read-only)
query: Text to search for. Name searches match part of the domain, tag searches need the exact tag. Omit to browse all sites (string, optional)by:name(default) ortag(string, optional)sort:most_viewed(default),most_followed,least_viewed,recently_updated,newestoroldest(string, optional)page: Page of results, about 50 sites each, default 1 (number, optional)response_format:markdown(default) orjson(string, optional)
nekoweb_get_news - Get the latest announcements from nekoweb.org's news page, newest first (read-only)
limit: How many posts to return, 1 to 100, default 5 (number, optional)response_format:markdown(default) orjson(string, optional)
nekoweb_get_global_feed - Get the newest posts from all Nekoweb sites, from the global RSS feed (read-only)
limit: How many posts to return, 1 to 50, default 20 (number, optional)response_format:markdown(default) orjson(string, optional)
nekoweb_get_feed - Get the latest posts from the sites you follow, as shown on your feed (read-only, needs the session token)
page: Page of the feed, newest first, default 1 (number, optional)response_format:markdown(default) orjson(string, optional)
nekoweb_list_following - List the sites you follow, grouped by the day each was last updated. Nekoweb leaves out sites their owners hid from Explore (read-only, needs the session token)
page: Fetch only this page. Omit to fetch every page, up to 20 (number, optional)response_format:markdown(default) orjson(string, optional)
nekoweb_follow_site - Follow or unfollow a site. Checks first, so it only changes something when needed (needs the session token)
site: Domain of the site, e.g.fairfruit.nekoweb.org(string, required)follow:trueto follow (default),falseto unfollow (boolean, optional)
Paths
Paths start at your account's file root, not at your site. Each site's files are in a folder named after its domain, so your homepage is /yourname.nekoweb.org/index.html, not /index.html. You don't need to remember this: the assistant finds the folder with nekoweb_list_sites.
Good to know
Rate limits. Nekoweb limits how many API requests you can make in a short time, with stricter limits for big uploads and zip imports. When you hit one, the tool says when it resets.
Deletes are permanent. Nekoweb has no trash.
Uploads overwrite. Uploading a file or a zip replaces files with the same name without asking.
Whole-file writes.
nekoweb_write_filereplaces the entire file, so the assistant reads the file first and sends back the complete new version.
Troubleshooting
Message | Fix |
"No Nekoweb API key configured" |
|
"redirected the request to its login page … missing or invalid" | The API key is wrong or was regenerated. Create a new one at https://nekoweb.org/api. |
"No Nekoweb session token configured" | The tool needs |
"Nekoweb rejected the session" | Your login session ended. Log in to nekoweb.org again and copy the new |
"Rate limit exceeded" | Wait until the reset time in the message, then try again. |
"File does not exist" | The path is probably missing your site's folder, e.g. |
The tools don't appear | Restart your client and check that Node.js 20.3 or newer is installed ( |
Found a bug or want a feature? Open an issue.
License
This project is licensed under the Apache 2.0 license.
Available Tools
11 toolsnekoweb_createCreate file or folderA
Create a new empty file or a new folder on your Nekoweb site. Fails if something already exists at that path.
To create a file with content in one step, use nekoweb_write_file instead.
Examples:
"Make a blog folder" -> { path: "/mysite.nekoweb.org/blog", is_folder: true }
"Create an empty robots.txt" -> { path: "/mysite.nekoweb.org/robots.txt", is_folder: false }
Inputs: path (required), is_folder (required).
nekoweb_deleteDelete file or folderADestructiveIdempotent
Permanently delete a file or a folder (including everything inside it) from your Nekoweb site. This cannot be undone.
Example: "Remove the old drafts folder" -> { path: "/mysite.nekoweb.org/drafts" }
Inputs: path (required).
nekoweb_get_limitsGet rate limitsARead-onlyIdempotent
Show the account's current API rate limits: 'general' (most file operations), 'big_uploads' (chunked uploads over 95MB) and 'zip' (zip imports).
Each limit has the maximum, how many requests remain, and when the counter resets. Call this before bulk operations or after a 429 error.
Inputs: response_format.
nekoweb_get_site_infoGet site infoARead-onlyIdempotent
Get a Nekoweb site's title, domain, views, followers, update count and creation/update dates.
Without 'site', returns the site that the configured API key belongs to. With 'site', looks up any public Nekoweb site (no API key needed).
Examples:
"How many views does my site have?" -> {}
"How popular is fairfruit.nekoweb.org?" -> { site: "fairfruit.nekoweb.org" } Use nekoweb_list_sites to see every site on the account.
Inputs: site, response_format.
nekoweb_import_zipImport zip archiveADestructiveIdempotent
Upload a .zip archive and extract it into a folder of your Nekoweb site, e.g. to deploy a whole site at once. Extracted files overwrite existing files with the same paths.
The 'zip' rate limit is strict (often 1 import per period); check nekoweb_get_limits first when unsure.
Example: "Deploy my built site" -> { zip_local_path: "C:/projects/site/dist.zip", folder: "/mysite.nekoweb.org" }
Inputs: folder, zip_base64, zip_local_path.
nekoweb_list_folderList folderARead-onlyIdempotent
List the files and folders inside a folder of your Nekoweb site, sorted by path.
Set recursive=true to walk subfolders too (up to max_depth levels; each subfolder costs one API request against the rate limit, capped at 25 per call). Results are paginated with limit/offset.
Examples:
"What's on my site?" -> { path: "/" }
"Find every image on my site" -> { path: "/mysite.nekoweb.org/assets", recursive: true }
Inputs: path, limit, offset, max_depth, +2 more.
nekoweb_list_sitesList my sitesARead-onlyIdempotent
List every site on the Nekoweb account that owns the API key, with domain, title, views, followers, dates and the folder that holds each site's files. The main site is marked.
Call this first to learn the folder to use in file paths, e.g. '/mysite.nekoweb.org'.
Use nekoweb_get_site_info for a single site.
Inputs: response_format.
nekoweb_moveRename or moveADestructive
Rename or move a file or folder on your Nekoweb site. Both are full paths from your file root; the destination's parent folder must exist.
Examples:
"Rename about.html to about-me.html" -> { from: "/mysite.nekoweb.org/about.html", to: "/mysite.nekoweb.org/about-me.html" }
"Move logo.png into the images folder" -> { from: "/mysite.nekoweb.org/logo.png", to: "/mysite.nekoweb.org/images/logo.png" }
Inputs: to (required), from (required).
nekoweb_read_fileRead fileARead-onlyIdempotent
Read the raw source of a file on your Nekoweb site (SSI directives in .html files are returned as written, not rendered).
Text files are returned as text, paginated by character offset. Images up to 5.0 MB are returned as images. Other binaries return only their size.
Examples:
"Show me my homepage HTML" -> { path: "/mysite.nekoweb.org/index.html" }
"Read the rest of the stylesheet" -> { path: "/mysite.nekoweb.org/style.css", offset: 20000 }
Inputs: path (required), offset, max_chars.
nekoweb_upload_fileUpload filesADestructiveIdempotent
Upload one or more files (any type, e.g. images, fonts, HTML) into a folder of your Nekoweb site. Existing files with the same name are overwritten.
Provide files as local_paths (files on this machine) and/or as base64 'files'. Files over 95MB are sent automatically with Nekoweb's chunked big-file upload. For plain text content, nekoweb_write_file is simpler.
Examples:
"Upload my banner" -> { folder: "/mysite.nekoweb.org/images", local_paths: ["C:/Users/me/banner.png"] }
"Add this favicon" -> { folder: "/mysite.nekoweb.org", files: [{ name: "favicon.ico", content_base64: "AAABAA..." }] }
Inputs: files, folder, local_paths.
nekoweb_write_fileWrite text fileADestructiveIdempotent
Write text content to a file on your Nekoweb site, creating it or replacing its entire content.
mode='create_or_overwrite' (default) uploads the file whether or not it exists; the parent folder must already exist (create it with nekoweb_create). mode='edit_existing' only changes a file that already exists.
Always send the complete new file content; there is no partial update. For binary or local files, use nekoweb_upload_file.
Examples:
"Change my homepage title" -> read it with nekoweb_read_file, then { path: "/mysite.nekoweb.org/index.html", content: "" }
"Add a stylesheet" -> { path: "/mysite.nekoweb.org/css/style.css", content: "body { ... }" }
Inputs: path (required), content (required), mode.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Each tool maps to a distinct resource/action: site metadata (get_site_info, list_sites), account limits, and file operations (list_folder, read_file, create, write_file, delete, move, upload_file, import_zip). The potentially overlapping trio of create/write_file/upload_file is explicitly differentiated in the descriptions (empty file vs text content vs binaries/local files), so an agent can select correctly.
All names share the nekoweb_ prefix and snake_case, and most follow verb_noun (get_site_info, list_folder, read_file, write_file, upload_file, import_zip). A few are bare verbs (create, delete, move) that drop the noun, a minor deviation that remains readable and predictable.
Eleven tools is well within the ideal range and each one covers a distinct capability of a static-site file host. Nothing appears redundant or padded; site info, limits, and the full file lifecycle each earn their place.
The file/folder lifecycle is fully covered (create, read, write, list, move, delete, bulk upload, zip import) along with account introspection via get_limits and site listing. Minor gaps exist: no search across files, no copy operation, and no way to modify site-level settings, but agents can work around these via listing and read/write.
Maintenance
Related MCP Connectors
File uploads for AI agents. Upload, list, and manage files. No signup required.
Upload, generate, organize, search, and transform images, videos, and files with AI-powered tools.
Upload, generate, organize, search, and transform images, videos, and files with AI-powered tools.
Build websites and apps from a prompt, edit files, publish, and check credits and usage.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides secure file system operations for AI assistants including directory listing, file reading/writing, deletion, searching, and copying. Features safety controls like path validation, permission checks, and file size limits.-
- AlicenseAqualityCmaintenanceEnables AI assistants to deploy, manage, and rollback websites via the Krexel API, supporting site uploads, deploys, logs, rollbacks, environment variables, and status checks.9112 npmMIT

Novence MCPofficial
AlicenseAqualityCmaintenanceEnables AI agents to create, check, deploy, and host static sites, manage files and forms, configure custom domains, and view quotas and analytics through a hosted MCP endpoint.431MIT- FlicenseAqualityBmaintenanceExposes the Nexus Mods API to AI agents so they can search and inspect mods, browse authors' catalogues, and upload or publish mod files from a local archive in a few aggregated tool calls. It handles authentication, caching, reporting quotas, and the multi-step v3 upload flow, while gating write and publish operations behind opt-in permissions.22-