QuillBot Local MCP
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., "@QuillBot Local MCPCan you humanize this paragraph? We are excited to share our new product."
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.
QuillBot Local MCP
Servidor MCP por STDIO, no oficial y experimental, para automatizar la interfaz web de QuillBot mediante Playwright. Devuelve texto del servicio y no modifica documentos.
Estado: protocolo MCP probado; integración con el sitio real pendiente de validación. Los selectores de la interfaz están vacíos intencionalmente. Después de instalar, quillbot_status funciona; detector y humanizador permanecerán bloqueados hasta configurar y comprobar sus controles reales. No es una integración lista para usar sin configuración. Los análisis hechos por separado desde un navegador no validan este adaptador.
Requisitos e instalación
Node.js 22 o posterior y un cliente compatible con MCP por STDIO. La cuenta, suscripción y límites aplicables dependen de QuillBot.
git clone https://github.com/Disneik/quillbot-local-mcp.git
cd quillbot-local-mcp
npm ci
npx playwright install chromium
npm testEn Linux puede ser necesario npx playwright install --with-deps chromium. Consulte la instalación oficial de Playwright.
Copie settings.example.json como settings.json:
# Linux / macOS
cp settings.example.json settings.json# PowerShell
Copy-Item settings.example.json settings.jsonRelated MCP server: jev-browser
Conectar un cliente MCP
Copie la entrada de mcp.example.json a la configuración MCP de su cliente. Sustituya ambas rutas absolutas por las de su copia local. En Windows se pueden utilizar barras /. node debe estar en el PATH del cliente; si no, indique su ruta absoluta. Los formatos de configuración pueden variar entre clientes.
La variable QUILLBOT_SETTINGS selecciona el archivo local. Si se omite, el servidor usa el ejemplo seguro incluido, con navegador deshabilitado. Para iniciar manualmente, use npm start (STDIO queda reservado para MCP).
Configurar y validar QuillBot
Autorice el uso del navegador en su cliente o entorno. Este servidor abre su propio Chromium mediante Playwright y no hereda las restricciones técnicas del navegador del cliente.
En
settings.json, activebrowserAccessEnabledúnicamente si tiene esa autorización. MantengaverifiedAgainstLiveSite: false.Llame a
quillbot_inspectcon{"mode":"detector","visible":true}. Complete personalmente el inicio de sesión en la ventana si se solicita. Se usa un perfil propio; no se importan sesiones ni cookies de otros navegadores.A partir de controles observados en la página, complete
editorSelector(CSS),submitButtonName(nombre accesible exacto del botón) yresultSelector(CSS del resultado).flaggedSelectores opcional para pasajes señalados. Repita parahumanizer. Las URLs iniciales pueden requerir ajustes si el servicio cambia.Para efectuar una comprobación manual, habilite
verifiedAgainstLiveSitey pruebe con un fragmento autorizado sin información sensible. Compare la entrada y salida con la página. Si la comprobación falla, vuelva afalsey corrija la configuración antes de usarlo con otros textos.
Los selectores y el resultado dependen de la interfaz actual, del idioma y de la sesión. Un cambio en el DOM puede requerir una nueva validación. El servidor espera que el contenedor tenga texto diferente al anterior al envío; ese criterio no garantiza por sí solo que una respuesta parcial haya terminado ni que un resultado esté asociado a la entrada correcta. Compruébelo durante la validación. Si el servicio devuelve exactamente el mismo texto que antes, puede agotarse el tiempo de espera.
Para iniciar sesión de forma visible, haga la inspección visible antes de otra operación de navegador. Si ya existe un contexto oculto, reinicie el servidor primero. Las pestañas de inspección visible quedan abiertas para que el usuario pueda completar el acceso.
Herramientas
Herramienta | Uso |
| Estado local, sin abrir el navegador ni enviar texto. |
| Controles visibles, sin ejecutar detección; admite |
| Envía |
| Envía |
Las respuestas contienen JSON breve, fecha, huella SHA-256 de la entrada y texto literal del servicio. No se infieren porcentajes adicionales. Solo se admite una operación simultánea. El límite local es de 30 000 caracteres por llamada; el límite real del servicio puede ser menor.
Datos y límites
Las herramientas de detección y humanización envían el texto a QuillBot. El servidor no guarda los textos como informes, pero el cliente MCP y QuillBot pueden aplicar sus propias políticas de almacenamiento. El perfil .browser-profile/ conserva la sesión: no lo comparta. settings.json, perfiles, informes y archivos de entorno quedan excluidos de Git.
No se incluyen claves, credenciales, cookies, textos de investigación ni documentos personales. No se automatizan CAPTCHA ni compras. Si hay un desafío, bloqueo, suscripción insuficiente o inicio de sesión pendiente, debe atenderlo el usuario. Los resultados del detector no certifican autoría y la paráfrasis necesita revisión del sentido, los datos y las citas; no se garantiza un resultado en Turnitin u otros servicios.
Pruebas y contribuciones
npm test comprueba el protocolo STDIO, controles de acceso, destinos permitidos, resultados vacíos y exclusión mutua. Usa datos simulados identificados como tales; no inicia Chromium ni constituye una prueba contra QuillBot. Las contribuciones que configuren selectores deben documentar fecha, idioma y pasos de validación, sin aportar sesiones ni textos privados.
Implementado con el SDK oficial de MCP y Playwright. Proyecto independiente, sin afiliación con QuillBot.
Licencia
MIT. Consulte LICENSE.
Available Tools
4 toolsquillbot_detectA
Envía el texto autorizado a la web de QuillBot y devuelve su resultado literal y fragmentos señalados. Requiere integración validada. No certifica autoría.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by disclosing that the text leaves the system to an external website (consistent with openWorldHint=true and readOnlyHint=false), that a validated integration is required, and that results do not certify authorship. That is meaningful behavioral context the structured fields do not carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences with no waste; the action and its output are front-loaded before the caveats. Efficient without omitting critical warnings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully characterizes the return ('resultado literal y fragmentos señalados') and states the integration prerequisite and non-certification limit. Complete enough to call the tool correctly, though sibling differentiation is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single self-evident 'text' parameter with 0% schema description coverage. The description adds one semantic note ('texto autorizado', i.e., authorization constraint) but no format or length guidance, so it only marginally compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb+resource: it sends authorized text to QuillBot's web and returns the literal result plus flagged fragments. An agent can tell what the tool produces. It does not, however, distinguish itself from quillbot_inspect or quillbot_status, so sibling routing stays ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A prerequisite is given ('Requiere integración validada'), which is genuine usage context, and 'No certifica autoría' acts as a scope caveat. But there is no when-to-use vs when-to-use-an-alternative guidance relative to the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quillbot_humanizeB
Solicita a QuillBot una propuesta de redacción para el fragmento autorizado. Devuelve una sugerencia para revisión; no modifica documentos.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description adds that the tool returns a suggestion and does not modify documents, which is useful context. Yet it doesn't clarify why readOnlyHint is false despite no mutation, nor does it describe external API/auth or latency behavior for an open-world call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences are front-loaded: the first states the action, the second clarifies the non-mutating, suggestion-only behavior. There is no unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description covers the high-level purpose and clarifies non-mutation. However, it omits important details about the input text constraints and the nature of the returned suggestion, and does not resolve the mismatch with readOnlyHint=false.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter 'text' with 0% description coverage. The description only vaguely mentions 'fragmento autorizado' and does not explain constraints like max length 30000, allowed content, or format, leaving the parameter under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it requests a writing suggestion from QuillBot for an authorized fragment. It distinguishes the tool from siblings like quillbot_detect or quillbot_status by focusing on proposing a rewrite.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage context ('fragmento autorizado') and clarifies that the result is a suggestion for review, not document modification. However, it does not explicitly compare with alternatives such as quillbot_detect or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quillbot_inspectB
Inspecciona controles visibles para validar la integración; no ejecuta detección. visible=true permite que el usuario inicie sesión.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | detector | |
| visible | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true). The description usefully adds that no detection is executed and that visible=true has a side effect (enabling user login), which is genuine behavioral context beyond the annotations. It does not explain permissions or what the inspection returns, so it stays at a middling 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with no filler, and the core purpose plus the key scoping exclusion are front-loaded. Nothing is wasted, though the terseness contributes to the vagueness noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with an undocumented enum parameter, no output schema, and a somewhat ambiguous object of inspection, the description is too thin. An agent cannot tell what mode=humanizer does here or what the inspection actually yields, leaving meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter burden. It only addresses one of two parameters (visible=true → allows login) and leaves the mode enum (detector/humanizer) completely undocumented, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Inspecciona controles visibles para validar la integración") and explicitly carves itself away from detection ("no ejecuta detección"), which separates it from sibling quillbot_detect. However, "controles visibles" remains vague about what is actually being inspected, so it stops short of full specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The negative clause "no ejecuta detección" implicitly routes detection work to quillbot_detect, and the note that visible=true enables user login hints at an interactive setup context. But it never states when to prefer this over quillbot_status, nor gives prerequisites or exclusions explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quillbot_statusBRead-only
Estado local del adaptador. No abre navegador ni envía texto.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false; the description usefully reinforces this by stating it opens no browser and sends no text, making the purely local, offline nature concrete. It does not, however, say what state information is actually reported.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler, front-loading the identity of the tool before the no-side-effects note. Every phrase carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description should say what "estado" means (readiness, config, version, errors). As written, an agent cannot tell what it will receive back, leaving a real gap for a status-check tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and schema coverage is 100%, so there is nothing for the description to disambiguate. Baseline 4 applies for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Estado local del adaptador" names a resource (the adapter) and a verb (report state), but the description largely restates the tool name (quillbot_status) in Spanish. It does not distinguish this from quillbot_inspect, which an agent could reasonably read as another status/inspection tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use statement or condition for choosing this over quillbot_inspect, quillbot_detect, or quillbot_humanize. The closest thing, "No abre navegador ni envía texto," describes behavior rather than when the agent should call it.
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.
4 tool updates
v0.1.0- First observed
quillbot_detect - First observed
quillbot_humanize - First observed
quillbot_inspect - First observed
quillbot_status
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: status checks local adapter state, inspect validates visible controls/login readiness, detect runs AI detection, and humanize requests a rewriting proposal. Although status and inspect both relate to integration health, the descriptions cleanly separate them.
All tools follow the same predictable quillbot_ prefix with lowercase snake_case verbs/nouns: status, inspect, detect, humanize. There are no deviations or mixed conventions.
Four tools is well-scoped for a focused local QuillBot adapter. Each tool has a clear role in the workflow: health, validation/login, detection, and humanization.
The core detection and humanization operations are covered, along with status and integration validation. Minor lifecycle gaps remain, such as explicit session cleanup/logout, batch operations, or configuration tools, but agents can work around these.
Maintenance
Related MCP Connectors
Browserless MCP — wraps the Browserless headless-Chromium REST API (browserless.io)
Playwright selector risk checks with healing suggestions and receipts.
Official Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables autonomous web QA by exposing Playwright browser control as MCP tools for navigation, accessibility snapshotting, interaction, and bug detection.1 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables browser automation through MCP with native Playwright operations, deterministic assertions, and natural-language grounded actions, structured extraction, and bounded agent workflows over live page elements.12Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables an MCP client to automate a real browser by requesting one outcome at a time, letting a decision model choose each element, action, and value while Playwright executes. Also exposes direct acting, yes/no page checks, question-focused page reading, screenshots, and any tools a page itself registers via WebMCP.509 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables MCP clients to automate a real browser by stating one outcome at a time, with a typesafe decision model picking the element, action, and value while Playwright executes it. It also exposes tools for direct actions, yes/no and multiple-choice page checks, focused document reading, screenshots, and calling a page's own WebMCP tools.509 npmMIT