Skip to main content
Glama
Nekoweb MCP Server

Nekoweb MCP Server

by Menal226

npm License

Nekoweb MCP Server

Installation

Install in VS Code Install in VS Code Insiders Install in Cursor Download for Claude Desktop

Prerequisites

  1. Node.js 20.3 or newer. The Claude Desktop extension doesn't need it, because Claude Desktop includes its own.

  2. A Nekoweb API key. 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.

  • Don't commit it. 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 the key into the file.

  • Regenerate it if it leaks. Generating a new key at https://nekoweb.org/api makes the old one stop working.

  • Limit local uploads. Set NEKOWEB_LOCAL_ROOT to your site project's folder so the assistant can only upload files from there. See Configuration.

Claude Code

claude mcp add nekoweb -e NEKOWEB_API_KEY=your-api-key -- npx -y nekoweb-mcp-server

Claude Desktop

Download nekoweb-mcp-server.mcpb and open it. Claude Desktop shows an install screen that asks for your API key.

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" }
    }
  }
}

VS Code

Use the install button above. VS Code asks for your API key when the server first starts. 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 }
  ],
  "servers": {
    "nekoweb": {
      "command": "npx",
      "args": ["-y", "nekoweb-mcp-server"],
      "env": { "NEKOWEB_API_KEY": "${input:nekoweb_api_key}" }
    }
  }
}

Cursor

Use the install button above, then replace your-api-key with your key. Or add this to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "nekoweb": {
      "command": "npx",
      "args": ["-y", "nekoweb-mcp-server"],
      "env": { "NEKOWEB_API_KEY": "your-api-key" }
    }
  }
}

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. 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

NEKOWEB_API_KEY

Yes

Your API key from https://nekoweb.org/api. Without it, only public site lookups work.

NEKOWEB_LOCAL_ROOT

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.

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) or json (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) or json (string, optional)

  • nekoweb_get_limits - Show how many API requests you have left and when each limit resets (read-only)

    • response_format: markdown (default) or json (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) or json (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_existing fails 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: true for a folder, false for 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 a name and content_base64 (object[], optional)

  • nekoweb_import_zip - Upload a .zip and extract it into a folder, replacing files with the same paths

    • folder: Folder to extract into, e.g. /mysite.nekoweb.org (string, optional)

    • zip_local_path: Full path of a .zip on your computer (string, optional)

    • zip_base64: The .zip as base64, if not using zip_local_path (string, 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_file replaces 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"

NEKOWEB_API_KEY isn't set. Add it to your MCP config and restart your client.

"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.

"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. /yourname.nekoweb.org/. Ask the assistant to list your sites first.

The tools don't appear

Restart your client and check that Node.js 20.3 or newer is installed (node --version).

Found a bug or want a feature? Open an issue.

License

This project is licensed under the Apache 2.0 license.

Available Tools

11 tools
nekoweb_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 }

NameRequiredDescriptionDefault
pathYesPath from the account's file root, including the site folder, e.g. '/mysite.nekoweb.org/blog'
is_folderYestrue to create a folder, false to create an empty file

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a mutating, non-idempotent, non-destructive, open-world operation, so the safety profile is covered. The description adds genuinely useful behavior beyond that: the pre-existence failure mode, which explains why idempotentHint is false. It stops short of saying what happens if the parent folder is missing, whether folder creation is recursive, or how the failure is reported.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core sentence and the sibling redirect come first, with examples placed after as optional illustration. Slight redundancy: the examples largely re-encode what the schema descriptions already say, so they consume space without adding much new signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter creation tool with no output schema and annotations that already cover mutation safety, the description supplies the essential missing piece: the collision-failure rule. Minor gaps remain around parent-directory behavior and error surfacing, but nothing an agent needs to invoke it correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are documented, including the required site-folder path format and the boolean meaning of is_folder. The description's examples restate essentially the same information (folder vs. empty file) rather than adding new semantics such as path normalization or trailing-slash behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a new empty file or a new folder on your Nekoweb site') and immediately delimits scope with 'empty', which is what separates it from the write_file sibling. An agent can distinguish it from nekoweb_write_file and nekoweb_upload_file without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the alternative and the condition that selects it: 'To create a file with content in one step, use nekoweb_write_file instead.' It also gives a when-not condition ('Fails if something already exists at that path') and two worked examples mapping natural language to arguments.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nekoweb_deleteDelete file or folderA
DestructiveIdempotent

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" }

NameRequiredDescriptionDefault
pathYesPath from the account's file root, including the site folder, e.g. '/mysite.nekoweb.org/old-page.html'

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint and idempotentHint; the description adds real value beyond them by emphasizing permanence ('This cannot be undone') and disclosing that deleting a folder is recursive. It does not cover permission requirements or error behavior, which keeps it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences plus a single example; every line earns its place. The irreversibility warning is placed immediately after the core action statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter destructive tool with annotations covering the safety profile and full schema documentation, nothing an agent needs in order to call it correctly is missing. No output schema exists, and none is needed for a delete operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the path format and constraints are already fully documented in the schema. The description's example path reinforces that convention but adds no new syntactic or semantic detail, matching the baseline for high-coverage schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Permanently delete a file or a folder') plus scope ('from your Nekoweb site'). It is clearly distinguishable from read/write/move/upload siblings, and the recursion detail ('including everything inside it') removes ambiguity about folder semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a concrete usage example ('Remove the old drafts folder' -> { path: ... }) that shows the calling context. It does not name alternatives or explicitly state when not to use it (e.g., use nekoweb_move for relocating), so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nekoweb_get_limitsGet rate limitsA
Read-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.

NameRequiredDescriptionDefault
response_formatNo'markdown' for readable text (default), 'json' for structured datamarkdown

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is covered. The description adds real behavioral content beyond them: what each bucket covers, the 95MB threshold that separates 'big_uploads' from 'general', and that counters carry max/remaining/reset. It doesn't mention window lengths or whether limits are per-account or per-IP, which would have completed the picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short paragraphs: purpose and bucket taxonomy first, then what the payload contains and when to call. Every sentence carries information (the 95MB threshold and the 429 trigger are both actionable), with no filler or repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still tells the agent what comes back — three named limit buckets, each with maximum, remaining, and reset time — which is exactly what an agent needs to reason about backoff. For a zero-required-parameter read tool, nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single optional parameter, response_format, and the schema description already covers it at 100% with an enum and default. The description adds no meaning about the parameter beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ("Show the account's current API rate limits") and then enumerates the three buckets returned ('general', 'big_uploads', 'zip'). No sibling tool touches rate limits, so an agent can distinguish this from the file/site CRUD siblings immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states concrete triggering conditions: call before bulk operations or after a 429 error. That is clear usage context that maps well to the bulk siblings (nekoweb_upload_file, nekoweb_import_zip). It does not explicitly name those siblings or state a when-not case, so it stops just short of the top.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nekoweb_get_site_infoGet site infoA
Read-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.

NameRequiredDescriptionDefault
siteNoDomain of another site, e.g. 'fairfruit.nekoweb.org'. Omit for your own site.
response_formatNo'markdown' for readable text (default), 'json' for structured datamarkdown

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered; the description adds genuinely new behavioral facts. Most notably, it discloses that lookups with 'site' require no API key and reach outside the caller's account, which is the key operational nuance for an open-world read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the returned fields, followed by the two-mode behavior, then compact examples, then a pointer to the sibling tool. Every line carries distinct information and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description compensates by listing the returned fields, and it covers auth requirements, both calling modes, and the alternative tool for enumeration. An agent has everything needed to select and invoke this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented, but the description adds the semantic distinction that matters most: omitted 'site' means the authenticated user's own site while a supplied domain means a third-party public site. The examples reinforce the format expected (a bare domain). 'response_format' is left to the schema, which is acceptable at full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ("Get a Nekoweb site's") and enumerates the exact fields returned: title, domain, views, followers, update count, and creation/update dates. It also clearly separates the two modes (own site vs. any public site), which is enough to distinguish it from siblings like nekoweb_list_sites.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states explicitly when to omit 'site' (returns the configured key's site) and when to pass it (any public Nekoweb site, no API key needed), then reinforces this with two concrete input examples. It also names the alternative tool, nekoweb_list_sites, for enumerating all sites on an account.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nekoweb_import_zipImport zip archiveA
DestructiveIdempotent

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" }

NameRequiredDescriptionDefault
folderNoFolder to extract into, e.g. '/mysite.nekoweb.org'/
zip_base64NoThe .zip file's bytes, base64-encoded
zip_local_pathNoAbsolute path of a local .zip file

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive=true, idempotent=true and openWorld=true, so the safety profile is covered; the description adds the key operational detail that extracted files overwrite existing files at the same paths and warns that the 'zip' rate limit is often one import per period. This is real behavior beyond the annotations, though it says nothing about failure modes or whether the target folder must already exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the operation and overwrite semantics, then the rate-limit warning, then an example. All three blocks carry information, with only minor redundancy between the example and the schema descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, open-world mutation with no output schema and no required parameters, the description covers overwrite semantics and rate limiting but omits what a reasonable agent still needs: that one of the two zip sources is mandatory, whether the folder is created if absent, and what a success or partial-extract result looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so folder, zip_base64 and zip_local_path are already documented in the schema; the description's example only illustrates one combination of them. It does not clarify the meaningful ambiguity that zero parameters are required, i.e. that at least one of zip_local_path or zip_base64 must be supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Upload a .zip archive and extract it into a folder of your Nekoweb site') and adds the distinguishing intent 'to deploy a whole site at once', which separates it from the single-file sibling nekoweb_upload_file without naming it directly. An agent can identify the operation, though an explicit sibling callout would make it airtight.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete intent-to-call example ('Deploy my built site') and an explicit prerequisite: check nekoweb_get_limits first because the 'zip' rate limit is strict. It lacks an explicit negative case (e.g. 'for a single file use nekoweb_upload_file instead'), so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nekoweb_list_folderList folderA
Read-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 }

NameRequiredDescriptionDefault
pathNoPath from the account's file root, including the site folder, e.g. '/mysite.nekoweb.org/blog'/
limitNoMaximum number of entries to return
offsetNoNumber of entries to skip, for pagination
max_depthNoHow many folder levels to descend when recursive=true
recursiveNoAlso list the contents of subfolders
response_formatNo'markdown' for readable text (default), 'json' for structured datamarkdown

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the description adds genuinely new behavior: recursion costs one API request per subfolder and is capped at 25 per call, and results are paginated via limit/offset. It does not explain what the output looks like or what happens when the cap is hit, leaving minor gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then recursion/pagination behavior, then two compact intent examples. No filler sentences, though the example block adds some length beyond the essentials.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Six optional parameters with full schema descriptions, no output schema, and a read-only safety profile already covered by annotations. The description supplies the recursion cost and pagination context an agent needs; only the shape of returned entries is left implicit, which is acceptable without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning beyond it: recursive interacts with max_depth as 'levels to descend' and carries a per-subfolder rate-limit cost, and limit/offset are framed as pagination. Only response_format goes unmentioned outside the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the files and folders inside a folder of your Nekoweb site') plus the ordering ('sorted by path'). An agent can distinguish this from siblings like nekoweb_read_file or nekoweb_list_sites without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Concrete examples map user intents ('What's on my site?', 'Find every image') to parameter sets, which gives clear when-to-use context. It does not explicitly say when not to use it or name an alternative sibling for related operations, so it falls short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nekoweb_list_sitesList my sitesA
Read-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.

NameRequiredDescriptionDefault
response_formatNo'markdown' for readable text (default), 'json' for structured datamarkdown

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds value beyond them by disclosing the scoping rule (only sites owned by the API key), the fact that the main site is marked, and the shape of the returned dataset including the folder field. It stops short of noting pagination or result-size behavior for accounts with many sites.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences: what it returns first, then how to use the result, then the alternative. Every sentence carries distinct information and the most actionable guidance (the folder path) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by enumerating the returned fields, which is the main thing an agent needs to decide whether to call it. Combined with the read-only annotations and the fully documented single parameter, nothing material is missing for a simple list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single optional parameter, response_format, and schema coverage is 100% with an enum and a default already documented in the schema. The description says nothing about it, so it neither adds nor contradicts meaning — the baseline 3 applies when the schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("List every site on the Nekoweb account that owns the API key") and enumerates exactly what each entry contains: domain, title, views, followers, dates, and file folder. It also distinguishes itself from the sibling nekoweb_get_site_info by name, so an agent can tell the two apart without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit sequencing instruction ("Call this first to learn the folder to use in file paths") with a concrete example path, and names the alternative for the single-site case ("Use nekoweb_get_site_info for a single site"). Both when-to-use and when-to-use-something-else are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nekoweb_moveRename or moveA
Destructive

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" }

NameRequiredDescriptionDefault
toYesNew path of the file or folder
fromYesCurrent path of the file or folder

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is covered structurally. The description adds the parent-folder existence requirement, but for a destructive operation it omits key behavior: whether an existing destination is overwritten, what happens to a folder's contents when moved, and whether the move is reversible or cross-site.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus two compact examples, with the core action statement front-loaded ahead of the precondition and illustrations. Every line adds usable information; nothing is redundant with the title or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two parameters, a full schema, and annotations covering safety, the description supplies essentially everything needed to construct a call correctly. The remaining gap is return/error behavior and overwrite semantics, which matter somewhat given destructiveHint=true but are not blocking for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description earns above that by specifying that both paths are absolute from the site root and by demonstrating real path formats (e.g., '/mysite.nekoweb.org/images/logo.png') that the schema's generic 'Current path'/'New path' wording does not convey. It does not clarify path separator or trailing-slash conventions for folders.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair and resource ('Rename or move a file or folder on your Nekoweb site'), which is clearly distinct from siblings like nekoweb_write_file, nekoweb_create, and nekoweb_delete. The two worked examples reinforce the exact semantics of a combined rename/move operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete precondition ('the destination's parent folder must exist') and clarifies path basis ('full paths from your file root'), with examples mapping natural-language requests to calls. It lacks explicit when-to-use-vs-alternatives guidance, e.g. no note telling the agent to use write_file instead when changing content rather than location.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nekoweb_read_fileRead fileA
Read-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 }

NameRequiredDescriptionDefault
pathYesPath from the account's file root, including the site folder, e.g. '/mysite.nekoweb.org/index.html'
offsetNoCharacter offset to start reading from, for files longer than max_chars
max_charsNoMaximum characters of text to return

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish a safe, idempotent read, and the description adds substantial behavior beyond them: SSI directives are not rendered, text is paginated, images up to 5.0 MB are returned as images, and other binaries return only size.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It front-loads the core raw-source behavior, then compactly explains file-type-dependent returns and provides two useful examples. Every sentence contributes to selecting or correctly invoking the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter read tool with full annotations and no output schema, it explains return behavior by file type, pagination via offset, SSI handling, and binary size reporting. An agent has enough information to call it correctly in typical cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so path, offset, and max_chars are already well documented in the input schema. The description reinforces offset usage through the 'Read the rest' example, but adds little syntax or constraint detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb, 'Read', and resource, 'raw source of a file on your Nekoweb site', while clarifying the important SSI behavior. It is clearly distinguishable from sibling write/delete tools without needing schema inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The examples give concrete when-to-use context, including continuing a paginated read with offset. However, it does not explicitly name alternatives or when-not conditions, such as using list_folder to discover paths.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nekoweb_upload_fileUpload filesA
DestructiveIdempotent

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..." }] }

NameRequiredDescriptionDefault
filesNoFiles to upload from base64 content, each with a name
folderNoDestination folder, e.g. '/mysite.nekoweb.org/images'; must already exist/
local_pathsNoAbsolute paths of local files; each keeps its file name

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true and idempotentHint=true, but the description adds the concrete consequence: existing files with the same name are overwritten. It also discloses the automatic chunked big-file path above 95MB, which is invisible in the schema. Auth requirements and post-upload return behavior are not covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and overwrite warning, then the two input modes, then a sibling pointer, then examples. Every sentence carries information the schema does not, and the examples resolve the local_paths-versus-files ambiguity directly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter mutation tool with no output schema, the definition covers mode selection, overwrite semantics, size handling, and the requirement that the destination folder already exist. It does not describe what the tool returns or the per-call item limits, leaving a small gap given there is no output schema to fall back on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline would be 3, but the description adds real meaning: local_paths are files on this machine, base64 'files' is an alternative or complement (the and/or relationship), and the examples show concrete folder/name shapes. It does not restate per-item constraints, which the schema already handles well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (upload files of any type into a Nekoweb site folder) and immediately names the sibling it is not for plain-text content. An agent can distinguish it from nekoweb_write_file without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes plain-text content to nekoweb_write_file and gives two worked examples mapping natural-language requests onto the two input modes. It does not address when to prefer nekoweb_import_zip or nekoweb_create for bulk/creation scenarios, which is the one remaining routing gap among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nekoweb_write_fileWrite text fileA
DestructiveIdempotent

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 { ... }" }

NameRequiredDescriptionDefault
modeNo'create_or_overwrite' (default) writes the file whether or not it exists; 'edit_existing' fails if it doesn'tcreate_or_overwrite
pathYesPath from the account's file root, including the site folder, e.g. '/mysite.nekoweb.org/index.html'
contentYesThe complete new content of the file (UTF-8 text)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, and the description is consistent with that while adding real context the annotations cannot convey: the whole file is replaced with no partial update, and a create_or_overwrite call fails if the parent folder is absent. It stops short of auth/scoping or rate-limit behavior, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and the destructive full-replace warning, followed by mode rules, the cross-tool pointer, and two compact worked examples. Each sentence carries distinct information and nothing is repeated verbatim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter, two-required write tool with no output schema, the description covers overwrite risk, mode failure conditions, the prerequisite of an existing parent folder, and the correct sibling for non-text writes. An agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage the schema already documents all three parameters, including the mode enum values and the path example. The description restates mode behavior and the complete-content rule in slightly different words rather than adding new semantics, so it stays at the baseline rather than earning extra credit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Write text content to a file") plus the exact write semantics: creates or fully replaces. It distinguishes itself from nekoweb_upload_file (binary/local files) and nekoweb_create (parent folders) by name, so an agent can route correctly without opening another schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly separates the two modes and their conditions: create_or_overwrite uploads regardless of existence, edit_existing only touches existing files. It also gives when-to-use alternatives in both directions -- nekoweb_create for the missing parent folder, nekoweb_upload_file for binary, nekoweb_read_file before editing a known file -- and closes with two concrete request examples.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv1.0.0
    • First observednekoweb_create
    • First observednekoweb_delete
    • First observednekoweb_get_limits
    • First observednekoweb_get_site_info
    • First observednekoweb_import_zip
    • First observednekoweb_list_folder
    • First observednekoweb_list_sites
    • First observednekoweb_move
    • First observednekoweb_read_file
    • First observednekoweb_upload_file
    • First observednekoweb_write_file

TDQS

A4.3/5.0

Scored across 11 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides 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.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to deploy, manage, and rollback websites via the Krexel API, supporting site uploads, deploys, logs, rollbacks, environment variables, and status checks.
    9
    72 npm
    MIT
  • F
    license
    A
    quality
    A
    maintenance
    Exposes 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
    -