Token导航 LogoToken导航TokenDH.com
Grammarly MCP Server logo
浏览器工具未说明官方级别未说明来源级核验

Grammarly MCP Server

MCP Server

通过浏览器自动化技术实现Grammarly的AI检测和抄袭评分功能,并提供文本重写优化服务。

工具数

0

提示词数

0

GitHub Stars

4

资源数

0
TypeScriptClaude浏览器自动化Claude DesktopClaudeCursorWindsurfVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

BjornMelin

提供方

BjornMelin

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

语法MCP服务器

通过Grammarly的web界面进行人工智能检测和剽窃评分的单工具模型上下文协议(MCP)服务器。支持两个浏览器自动化提供程序: 舞台布景+浏览器基础 (默认)和 浏览器使用云 (回退)。

它的作用

  • 自动化Grammarly的文档UI,以获得AI检测和抄袭百分比
  • 通过Claude重写文本以降低AI检测分数
  • 显示一个MCP工具: grammarly_optimize_text
注: 此服务器通过浏览器自动化与app.grammarly.com进行交互。它不使用Grammarly API。

______________________________________________________________________

目录

______________________________________________________________________

快速开始

选项A:舞台手+浏览器(推荐)

先决条件: Node.js 18+,Grammarly Pro账号, 浏览 账户

# 1. Clone and build
git clone https://github.com/BjornMelin/grammarly-mcp.git
cd grammarly-mcp
pnpm install && pnpm build

# 2. Get Browserbase credentials
# - Sign up at https://www.browserbase.com
# - Create a project, note the Project ID
# - Generate an API key

# 3. Set up Claude Code CLI (for text rewriting)
npm install -g @anthropic-ai/claude-code
claude login

# 4. Configure environment
cp .env.example .env
# Edit .env with your Browserbase credentials

# 5. Add to Claude Code
claude mcp add grammarly -- node $(pwd)/dist/server.js

# 6. Test
claude "Use grammarly_optimize_text with mode score_only on: Hello world test"

选项B:浏览器使用云(传统)

先决条件: Node.js 18+,Grammarly Pro账号, 浏览器使用云 账户

# 1. Clone and build
git clone https://github.com/BjornMelin/grammarly-mcp.git
cd grammarly-mcp
pnpm install && pnpm build

# 2. Get Browser Use credentials
# - Sign up at https://cloud.browser-use.com
# - Create API key (bu_...)
# - Create profile and sync Grammarly login (profile_...)

# 3. Set up Claude Code CLI
npm install -g @anthropic-ai/claude-code
claude login

# 4. Configure environment
cp .env.example .env
# Set BROWSER_PROVIDER=browser-use and Browser Use credentials

# 5. Add to Claude Code
claude mcp add grammarly -- node $(pwd)/dist/server.js

______________________________________________________________________

特性

  • 双供应商支持:舞台手+浏览器基础(默认)或浏览器使用云(回退)
  • 会话持续:浏览器基础上下文在会话之间保留Grammarly登录
  • 自愈自动化:Stagehand自动适应DOM更改
  • 多LLM支持:浏览器自动化的独立提供商(STAGEHAND_LLM_PROVIDER)以及文本重写(REWRITE_LLM_PROVIDER)
  • 实时调试URL:执行过程中的实时浏览器预览
  • 动作缓存:可选缓存,可实现更快的重复操作
  • 结构化输出:JSON或markdown响应格式
  • 进度通知:MCP 2025-11-25进度跟踪支持

______________________________________________________________________

需求

所有配置

  • Node.js 18+
  • Grammarly Pro帐户(用于AI检测和抄袭功能)
  • 用于文本重写的Claude代码CLI:
  npm install -g @anthropic-ai/claude-code
  claude login

后台提供者(默认)

  • 浏览 账户
  • BROWSERBASE_API_KEYBROWSERBASE_PROJECT_ID

浏览器使用提供程序(回退)

  • 浏览器使用云 账户
  • BROWSER_USE_API_KEYBROWSER_USE_PROFILE_ID
  • 浏览器配置文件已与Grammarly登录状态同步

______________________________________________________________________

安装

git clone https://github.com/BjornMelin/grammarly-mcp.git
cd grammarly-mcp
pnpm install
pnpm build

______________________________________________________________________

提供者选择

此服务器支持两个浏览器自动化提供程序:

功能舞台手(默认)浏览器使用云
提供商浏览器基础浏览器使用云
自动化观察/行动/提取自然语言任务
自我修复有限
会话持久性上下文ID配置文件同步
调试URL实时每个任务
动作缓存
可靠性较高中等

何时使用舞台手

  • 需要可靠性的生产工作负载
  • 需要会话持久性以避免重新登录开销
  • 想要实时调试可见性
  • Grammarly UI更改需要自我修复

何时使用浏览器使用云

  • 现有浏览器使用云设置
  • 更喜欢简单的自然语言任务描述
  • 一次性或测试场景

通过环境变量设置提供程序:

BROWSER_PROVIDER=stagehand  # Default
BROWSER_PROVIDER=browser-use  # Fallback

______________________________________________________________________

环境变量

环境隔离

变量必填默认描述
IGNORE_SYSTEM_ENV没有false何时 true,忽略shell环境变量,仅使用 .env 文件。防止IDE继承的环境污染。

提供程序配置

变量必填默认描述
BROWSER_PROVIDER没有stagehandstagehandbrowser-use

舞台布景+浏览器基础

需要时 BROWSER_PROVIDER=stagehand:

变量必填描述
BROWSERBASE_API_KEYAPI密钥来自 基于浏览器的.Com
BROWSERBASE_PROJECT_ID来自Browsebase仪表板的项目ID
BROWSERBASE_CONTEXT_IDGrammarly登录状态的持久上下文
BROWSERBASE_SESSION_ID重用现有会话(高级)
STAGEHAND_MODEL没有已弃用。 使用 STAGEHAND_LLM_PROVIDER +改为模型变量
STAGEHAND_CACHE_DIR操作缓存目录
GOOGLE_GENERATIVE_AI_API_KEY没有\*Gemini模型的Google API密钥。也接受 GEMINI_API_KEY

\*使用Google/GGemini模型时需要(默认)。从……得到 aistudio.google.com.

浏览器使用云

需要时 BROWSER_PROVIDER=browser-use:

变量必填描述
BROWSER_USE_API_KEYAPI密钥来自 cloud.browser-use.com
BROWSER_USE_PROFILE_ID已同步Grammarly登录的个人资料

LLM提供者控制

独立的LLM提供程序用于浏览器自动化和文本重写(可以使用不同的提供程序):

变量必填默认描述
STAGEHAND_LLM_PROVIDER自动检测LLM用于浏览器自动化: claude-code, openai, google, anthropic
REWRITE_LLM_PROVIDER自动检测LLM用于文本重写: claude-code, openai, google, anthropic

如果未设置,则从API密钥自动检测(优先级:OpenAI>Google>Anthropic>Claude Code)。

模型选择

变量必填默认描述
CLAUDE_MODEL没有auto克劳德模型: auto, haiku, sonnet, opus。根据文本长度和迭代次数自动选择。
ANTHROPIC_MODEL没有claude-sonnet-4-20250514使用直接的Anthropic提供者时的Anthrotic模型id。
OPENAI_MODEL没有gpt-4oOpenAI模型名称
GOOGLE_MODEL没有gemini-2.5-flash谷歌/双子座型号名称

API密钥

变量必填描述
CLAUDE_API_KEYClaude API密钥。如果未设置,则使用 claude login CLI身份验证
OPENAI_API_KEY无\*OpenAI API密钥。使用OpenAI提供程序时需要。
GOOGLE_GENERATIVE_AI_API_KEY没有\*Google API密钥。也接受 GEMINI_API_KEY。谷歌提供商需要。
ANTHROPIC_API_KEY否\*API无烟煤键。使用直接Anthropic提供者时需要。

\*显式设置相应的LLM提供程序或自动检测时需要。

超时和日志记录

变量必填默认描述
LOG_LEVEL没有infodebug, info, warn, error
LLM_REQUEST_TIMEOUT_MS没有120000LLM请求超时(ms)。 CLAUDE_REQUEST_TIMEOUT_MS 仍然接受兼容性。
CONNECT_TIMEOUT_MS没有30000MCP连接超时(ms)

______________________________________________________________________

运行服务器

pnpm start
# or
node dist/server.js

服务器使用stdio传输进行MCP通信。

______________________________________________________________________

客户端配置

在MCP客户端中配置环境变量。必修的:

自动设置

运行交互式设置脚本,使用您的值自动配置MCP客户端 .env 文件:

# First, configure your .env file with credentials
cp .env.example .env
# Edit .env with your API keys

# Run the setup script
pnpm setup-clients

脚本将:

  • 显示适用于您平台的可用MCP客户端
  • 让您选择要配置的客户端
  • 修改前备份现有配置
  • 编写适当的配置格式(JSON或TOML)

手动配置

Claude Code CLI

通过CLI命令:

claude mcp add grammarly -e BROWSER_PROVIDER=stagehand \
  -e BROWSERBASE_API_KEY=bb_xxx \
  -e BROWSERBASE_PROJECT_ID=xxx \
  -- node /path/to/grammarly-mcp/dist/server.js

或添加到 ~/.claude/settings.json:

{
  "mcpServers": {
    "grammarly": {
      "command": "node",
      "args": ["/path/to/grammarly-mcp/dist/server.js"],
      "env": {
        "BROWSER_PROVIDER": "stagehand",
        "BROWSERBASE_API_KEY": "bb_xxx",
        "BROWSERBASE_PROJECT_ID": "xxx"
      }
    }
  }
}

Claude Desktop

添加到您的Claude Desktop配置文件中:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "grammarly": {
      "command": "node",
      "args": ["/path/to/grammarly-mcp/dist/server.js"],
      "env": {
        "BROWSER_PROVIDER": "stagehand",
        "BROWSERBASE_API_KEY": "bb_xxx",
        "BROWSERBASE_PROJECT_ID": "xxx"
      }
    }
  }
}

Cursor

添加到 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "grammarly": {
      "command": "node",
      "args": ["/path/to/grammarly-mcp/dist/server.js"],
      "env": {
        "BROWSER_PROVIDER": "stagehand",
        "BROWSERBASE_API_KEY": "bb_xxx",
        "BROWSERBASE_PROJECT_ID": "xxx"
      }
    }
  }
}

或者通过UI:设置→ MCP → 添加新的MCP服务器

VS Code (GitHub Copilot)

添加到 .vscode/mcp.json 在您的工作空间中:

{
  "mcpServers": {
    "grammarly": {
      "command": "node",
      "args": ["/path/to/grammarly-mcp/dist/server.js"],
      "env": {
        "BROWSER_PROVIDER": "stagehand",
        "BROWSERBASE_API_KEY": "bb_xxx",
        "BROWSERBASE_PROJECT_ID": "xxx"
      }
    }
  }
}

或者通过CLI:

code --add-mcp '{"name":"grammarly","command":"node","args":["/path/to/grammarly-mcp/dist/server.js"]}'

Windsurf

添加到 ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "grammarly": {
      "command": "node",
      "args": ["/path/to/grammarly-mcp/dist/server.js"],
      "env": {
        "BROWSER_PROVIDER": "stagehand",
        "BROWSERBASE_API_KEY": "bb_xxx",
        "BROWSERBASE_PROJECT_ID": "xxx"
      }
    }
  }
}

Gemini CLI

添加到 ~/.gemini/settings.json:

{
  "mcpServers": {
    "grammarly": {
      "command": "node",
      "args": ["/path/to/grammarly-mcp/dist/server.js"],
      "env": {
        "BROWSER_PROVIDER": "stagehand",
        "BROWSERBASE_API_KEY": "bb_xxx",
        "BROWSERBASE_PROJECT_ID": "xxx"
      }
    }
  }
}

OpenAI Codex CLI

添加到 ~/.codex/config.toml:

[mcp_servers.grammarly]
command = "node"
args = ["/path/to/grammarly-mcp/dist/server.js"]

[mcp_servers.grammarly.env]
BROWSER_PROVIDER = "stagehand"
BROWSERBASE_API_KEY = "bb_xxx"
BROWSERBASE_PROJECT_ID = "xxx"

Continue (VS Code Extension)

添加到 .continue/config.json:

{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "stdio",
          "command": "node",
          "args": ["/path/to/grammarly-mcp/dist/server.js"],
          "env": {
            "BROWSER_PROVIDER": "stagehand",
            "BROWSERBASE_API_KEY": "bb_xxx",
            "BROWSERBASE_PROJECT_ID": "xxx"
          }
        }
      }
    ]
  }
}

推荐配置

Minimal (Claude Pro/Max)

使用您的Claude订阅-无需额外的API密钥:

{
  "env": {
    "BROWSER_PROVIDER": "stagehand",
    "BROWSERBASE_API_KEY": "bb_xxx",
    "BROWSERBASE_PROJECT_ID": "xxx"
  }
}

Cost-Optimized (Always Haiku)

强制使用最便宜的Claude模型:

{
  "env": {
    "BROWSER_PROVIDER": "stagehand",
    "BROWSERBASE_API_KEY": "bb_xxx",
    "BROWSERBASE_PROJECT_ID": "xxx",
    "CLAUDE_MODEL": "haiku"
  }
}

Mixed Providers (Fast + Quality)

Gemini用于浏览器自动化(快速),Claude用于重写(质量):

{
  "env": {
    "BROWSER_PROVIDER": "stagehand",
    "BROWSERBASE_API_KEY": "bb_xxx",
    "BROWSERBASE_PROJECT_ID": "xxx",
    "GOOGLE_GENERATIVE_AI_API_KEY": "xxx",
    "STAGEHAND_LLM_PROVIDER": "google",
    "REWRITE_LLM_PROVIDER": "claude-code",
    "CLAUDE_MODEL": "sonnet"
  }
}

Full Configuration (All Options)

{
  "env": {
    "BROWSER_PROVIDER": "stagehand",
    "BROWSERBASE_API_KEY": "bb_xxx",
    "BROWSERBASE_PROJECT_ID": "xxx",
    "BROWSERBASE_CONTEXT_ID": "ctx_xxx",
    "STAGEHAND_LLM_PROVIDER": "google",
    "GOOGLE_GENERATIVE_AI_API_KEY": "xxx",
    "GOOGLE_MODEL": "gemini-2.5-flash",
    "REWRITE_LLM_PROVIDER": "claude-code",
    "CLAUDE_MODEL": "auto",
    "LOG_LEVEL": "info",
    "LLM_REQUEST_TIMEOUT_MS": "120000",
    "CONNECT_TIMEOUT_MS": "30000"
  }
}

______________________________________________________________________

工具:语法优化文本

输入参数

参数类型默认值说明
text字符串_(必填)_要分析/优化的文本
modeenumoptimizescore_only, optimize,或 analyze
max_ai_percent编号10目标AI检测阈值(0-100)
max_plagiarism_percent编号5目标抄袭阈值(0-100)
max_iterations编号5最大重写迭代次数(1-20)
toneenumneutralneutral, formal, informal, academic, custom
domain_hintstring--域上下文(例如,“法律”、“医疗”)
custom_instructionsstring--其他重写指令
proxy_country_codestring--ISO 3166-1地理路由的alpha-2国家代码
response_formatenumjsonjsonmarkdown
max_steps编号25最大浏览器自动化步骤(5-100)

输出模式

{
  "final_text": "string",
  "ai_detection_percent": "number | null",
  "plagiarism_percent": "number | null",
  "iterations_used": "number",
  "thresholds_met": "boolean",
  "history": [
    {
      "iteration": "number",
      "ai_detection_percent": "number | null",
      "plagiarism_percent": "number | null",
      "note": "string"
    }
  ],
  "notes": "string",
  "live_url": "string | null",
  "provider": "string"
}

LLM配置

此服务器使用 独立的法学硕士提供者 用于浏览器自动化和文本重写:

目的环境变量用例
浏览器自动化STAGEHAND_LLM_PROVIDER现场观察/行动/撤离操作
文本重写REWRITE_LLM_PROVIDERClaude重写文本以减少AI检测

示例:每个任务的不同提供者:

# Fast Google for browser automation, quality Claude for rewriting
STAGEHAND_LLM_PROVIDER=google
GOOGLE_MODEL=gemini-2.5-flash
REWRITE_LLM_PROVIDER=claude-code
CLAUDE_MODEL=sonnet

自动检测优先级 (当提供者未明确设置时):

  1. 开放人工智能 -如果 OPENAI_API_KEY 已设置
  2. 谷歌 -如果 GOOGLE_GENERATIVE_AI_API_KEYGEMINI_API_KEY 已设置
  3. Anthropic -如果 ANTHROPIC_API_KEY 已设置
  4. 克劳德代码CLI (回退)-用途 claude login 认证

克劳德车型自动选择 (当 CLAUDE_MODEL=auto):

文本长度迭代次数模型
\12k个字符>8作品(最高质量)

浏览器使用LLM选项

使用浏览器时使用云(BROWSER_PROVIDER=browser-use),自动化使用Browser Use的内置LLM,价格为0.002美元/步。文本重写仍然使用配置的 REWRITE_LLM_PROVIDER.

______________________________________________________________________

会话保持

浏览器基础上下文允许您在会话之间持久化Grammarly登录状态。

毅力是如何发挥作用的

  1. 首次运行:服务器创建浏览器基础会话。使用调试URL手动登录Grammarly。
  2. 注释上下文ID:上下文ID出现在服务器日志或会话响应中。
  3. 后续运行:设置 BROWSERBASE_CONTEXT_ID 跳过登录。

设置

# First run - no context, log in manually via debug URL
BROWSERBASE_API_KEY=bb_...
BROWSERBASE_PROJECT_ID=...

# After logging in, add context ID for subsequent runs
BROWSERBASE_CONTEXT_ID=ctx_...

演出

场景初始化时间
新会话,无上下文~30-45秒
现有上下文~5-10秒
重新使用活动会话~1-2秒

______________________________________________________________________

运作原理

建筑

MCP Client (Claude Code, Cursor, VS Code, etc.)
    │
    └── grammarly_optimize_text tool
        │
        ├── Provider Abstraction
        │    ├── StagehandProvider (default)
        │    │   ├── BrowserbaseSessionManager
        │    │   ├── Stagehand (observe/act/extract)
        │    │   └── Multi-LLM Client
        │    │
        │    └── BrowserUseProvider (fallback)
        │        └── Browser Use SDK
        │
        └── Rewrite Client (multi-provider text rewriting)
            └── Claude Code / OpenAI / Google / Anthropic

分段流

  1. 获取或创建具有可选上下文的Browserbase会话
  2. 初始化连接到会话的Stagehand实例
  3. 导航到app.grammarly.com
  4. 使用 observe() 查找UI元素(新文档按钮、AI检测器)
  5. 使用 act() 进行交互(单击,键入文本)
  6. 使用 extract() 使用Zod模式获得结构化分数
  7. 返回带有调试URL的分数

浏览器使用流程

  1. 使用同步的配置文件创建浏览器使用会话
  2. 将自然语言任务发送给浏览器使用代理
  3. Agent导航Grammarly、粘贴文本、运行检查
  4. 返回结构化分数

优化循环

  1. 初始得分 (迭代0)在原始文本上
  2. 在优化模式下:循环到 max_iterations:

- LLM(通过 REWRITE_LLM_PROVIDER)根据当前分数、音调、领域重写文本 - 通过Grammarly重新评分 - 如果达到阈值,请提前突破

  1. 生成摘要 通过配置的重写LLM提供程序

______________________________________________________________________

发展

建造和质量

pnpm install        # Install dependencies
pnpm build          # Compile TypeScript
pnpm type-check     # Type checking only
pnpm biome:check    # Lint + format check
pnpm biome:fix      # Auto-fix lint + format
pnpm check-all      # Type check + lint

测试

pnpm test           # Watch mode
pnpm test:run       # Run once
pnpm test:coverage  # With coverage report
pnpm test:unit      # Unit tests only
pnpm test:integration  # Integration tests

覆盖阈值 (在CI中强制执行):85%的行,85%的功能,75%的分支。

测试使用具有V8覆盖率的Vitest。看 tests/ 用于测试结构和 CLAUDE.md 用于测试惯例。

______________________________________________________________________

故障排除

服务器问题

服务器无法启动

检查是否设置了所需的环境变量:

  • 舞台工作人员: BROWSERBASE_API_KEY, BROWSERBASE_PROJECT_ID
  • 浏览器使用: BROWSER_USE_API_KEY, BROWSER_USE_PROFILE_ID

工具未出现在客户端

  • 验证路径 dist/server.js 绝对正确
  • pnpm build 确保编译成功
  • 配置更改后重新启动MCP客户端

阶段性问题

浏览器基础会话创建失败

上下文未持久化登录

  • 确保在上下文处于活动状态时登录Grammarly
  • 上下文ID必须与发生登录的会话匹配
  • 语法会话可能会过期;需要时重新登录

自我修复的失败

  • Grammarly UI可能发生了重大变化
  • 试试看 LOG_LEVEL=debug 查看Stagehand观察结果
  • 报告持续存在的问题

浏览器使用问题

会话创建失败

配置文件同步问题

  • 使用浏览器使用工具重新同步您的Grammarly登录
  • Grammarly Cookie可能已过期

语法问题

AI检测分数为空

您的Grammarly计划可能不包括AI探测器。这需要启用AI检测的Grammarly Pro。

抄袭分数为零

剽窃检查需要Grammarly Pro订阅。

克劳德问题

身份验证错误

使用CLI身份验证(推荐):

claude logout
claude login

使用API密钥: 确保 CLAUDE_API_KEY 设置正确。

______________________________________________________________________

安全注意事项

  • API密钥:安全存放。永远不要承诺版本控制。
  • 浏览器基础上下文:包含会话Cookie。将上下文ID视为敏感。
  • 浏览器使用配置文件:包含Grammarly会话状态。将配置文件ID视为敏感。
  • 数据流:文本通过:

1. 浏览器基础或浏览器使用云(浏览器自动化) 1. 语法(通过web UI) 1. API(用于重写)

查看每个服务的隐私政策。

  • 本地执行:MCP服务器通过stdio在本地运行,而不是通过网络。

______________________________________________________________________

注意事项和限制

  • Grammarly Pro必需:AI检测器和剽窃检查器需要Grammarly Pro。分数返回 null 如果不可用。
  • UI依赖关系:自动化使用观察/动作/提取(舞台手)或自然语言(浏览器使用)。语法UI更改可能会影响可靠性。
  • 文本长度:很长的文本可能超过上下文限制。考虑分块。
  • 速率限制:Browserbase、Browser Use Cloud和Grammarly都有使用限制。
  • 会话限制:浏览器基础会话有超时限制。使用上下文进行持久化。

______________________________________________________________________

外部资源

______________________________________________________________________

许可证

MIT许可证-请参阅 许可证 了解详情。

目录标签

目录标签

TypeScriptClaude浏览器自动化文本优化本地部署AI检测抄袭检测自然语言处理

支持客户端

Claude DesktopClaudeCursorWindsurfVS Code

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

api-key

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明api-keyremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP