Claude Typer
A Windows MCP extension that allows Claude to type text into any active application with human-like keystroke timing, approval mode, configurable speed, and writing style presets.
README
Claude Typer
A Windows MCP extension for Claude Desktop that lets Claude type text directly into any active application (Google Docs, Word, Notepad, browser, etc.) with human-like typing behavior and configurable writing style.
Features
- Human-like typing — Simulates realistic keystroke timing with digraph acceleration, thinking pauses, speed drift, and natural variance
- Approval mode — Preview text before Claude types it (on by default). Approve, reject, or request changes
- Configurable speed — WPM slider (30–150) and consistency control
- Clipboard paste — Instant paste mode for large blocks of text
- Keyboard shortcuts — Send formatting commands (Ctrl+B, Ctrl+I, etc.) to any app
- Emergency stop — Cancel typing mid-stream if something goes wrong
- Writing style presets — Intellectual, smart, concise, casual, professional, and more
- Grade-level targeting — Adjust output complexity from 1st grade to postgraduate
- Style cloning — Calibration questionnaire that learns your writing style
- Settings GUI — Live control panel with sliders, toggles, action log, and profile management
- Window targeting — Find and focus specific application windows with verification
- Health diagnostics — Built-in health check to troubleshoot issues
- Action log — Rolling history of all operations for review
Quick Start
1. Install Python dependencies
cd claude-typer
pip install -r requirements.txt
2. Register with Claude Desktop
Add this to your Claude Desktop config file.
Standard location: %APPDATA%\Claude\claude_desktop_config.json
Microsoft Store version: Check under %LOCALAPPDATA%\Packages\AnthropicPBC.claude_*\LocalCache\Roaming\Claude\claude_desktop_config.json
{
"mcpServers": {
"claude-typer": {
"command": "python",
"args": ["C:\\full\\path\\to\\claude-typer\\server.py"]
}
}
}
Tip: Use the full absolute path to
server.py. Replace backslashes with double backslashes in JSON.
3. Restart Claude Desktop
Close and reopen Claude Desktop. You should see "Claude Typer" listed in the MCP tools menu (hammer icon). The settings GUI window will also appear.
Usage Examples
Once connected, you can ask Claude things like:
- "Type 'Hello, world!' into my Notepad window"
- "Focus Google Docs and type a paragraph about climate change"
- "Set typing speed to 60 WPM with high consistency"
- "Switch to the concise writing preset"
- "Start a style calibration session"
- "Paste this code block into VS Code"
- "Press Ctrl+B to toggle bold, then type 'Important'"
- "Turn off approval mode so you can type directly"
- "Run a health check"
- "Stop typing"
MCP Tools Reference
Typing
| Tool | Description |
|---|---|
type_text(text) |
Type text character-by-character (stages for approval if approval mode is on) |
paste_text(text) |
Instant clipboard paste (stages for approval if approval mode is on) |
approve_pending() |
Approve staged text and execute the type/paste |
reject_pending() |
Cancel staged text without typing |
stop_typing() |
Emergency stop — cancel typing in progress |
press_keys(keys) |
Send keyboard shortcuts like ctrl+b, enter, ctrl+shift+7 |
Configuration
| Tool | Description |
|---|---|
configure_typing(wpm, consistency, human_mode) |
Adjust typing behavior |
configure_style(preset, grade_level, profile) |
Set writing style |
configure_approval(require_approval) |
Toggle approval mode on/off |
get_settings() |
View current configuration, pending text, and active window |
Window Management
| Tool | Description |
|---|---|
get_active_window_info() |
See which window is focused |
focus_window_by_title(title) |
Focus a window by partial title match |
check_window(expected_title) |
Verify the right window is focused before typing |
list_open_windows() |
List all visible windows |
Style Profiles
| Tool | Description |
|---|---|
start_calibration() |
Begin style cloning questionnaire |
submit_calibration_answer(answer) |
Answer a calibration question |
list_style_profiles() |
List saved profiles |
delete_style_profile(name) |
Delete a profile |
Diagnostics
| Tool | Description |
|---|---|
health_check() |
Check all dependencies, clipboard, display, and window management |
get_action_log(count) |
View recent action history |
Approval Mode
By default, Claude Typer requires your approval before typing anything. When you ask Claude to type text:
- Claude generates the text and calls
type_text() - The text is staged (not typed yet) and shown to you as a preview
- You review it and say "looks good" → Claude calls
approve_pending()→ typing begins - Or say "change X" → Claude calls
reject_pending()and regenerates
You can turn this off with configure_approval(false) or via the GUI checkbox.
Settings GUI
The settings window launches automatically alongside the MCP server. It provides:
- WPM slider (30–150)
- Consistency slider (0.0–1.0)
- Human-Like Mode toggle
- Require Approval toggle
- Always On Top toggle
- Style preset dropdown
- Grade level slider (1–16)
- Profile selector
- Status indicator with health info
- Active window display (updates every 2s)
- Scrollable action log with timestamps
Changes in the GUI are applied immediately and persisted to config.json.
Human-Like Typing Mode
When enabled, the typing engine simulates realistic human behavior:
- Digraph acceleration — Common letter pairs (th, er, in, etc.) are typed faster
- Word boundary pauses — Small hesitation at the start of new words
- Thinking pauses — Occasional longer pauses mid-sentence
- Sentence boundary pauses — Natural pauses after periods and question marks
- Speed drift — WPM gradually fluctuates ±15% over time
- Log-normal distribution — Occasional longer pauses, rarely faster-than-normal bursts
Safety Features
- Failsafe: Move your mouse to any screen corner to abort typing immediately (pyautogui built-in)
- Emergency stop: Call
stop_typing()to cancel mid-type - Typing lock: Prevents concurrent typing operations from conflicting
- Clipboard preservation: Original clipboard contents are restored after paste operations
File Structure
claude-typer/
├── server.py # MCP server entry point
├── typing_engine.py # Keystroke simulation and timing
├── style_engine.py # Writing style presets and profiles
├── calibration.py # Style cloning questionnaire
├── gui.py # Settings GUI (tkinter)
├── window_manager.py # Window detection and focusing
├── config.json # Persisted settings
├── claude_typer.log # Log file (created on first run)
├── profiles/ # Custom style profiles
├── requirements.txt # Python dependencies
└── README.md # This file
Troubleshooting
Run health_check() first — it will identify most issues automatically.
Claude Desktop doesn't see the tools:
- Verify the path in
claude_desktop_config.jsonis correct and uses double backslashes - Make sure Python is on your PATH, or use the full path to
python.exe - Restart Claude Desktop completely (check system tray)
Typing goes to the wrong window:
- Use
check_window("Google Docs")to verify the right window is focused - Use
focus_window_by_title()to target the correct app before typing
Typing stops mid-way or behaves oddly:
- Check
get_action_log()for error details - Ensure no other program is grabbing keyboard focus
- The failsafe may have triggered — check if your mouse is near a screen corner
GUI doesn't appear:
- The GUI runs in a background thread; it may take a moment to appear
- Check
claude_typer.logfor error messages - Ensure tkinter is installed (comes with standard Python)
Microsoft Store version of Claude Desktop:
- The config file path differs from the standard install
- Look in
%LOCALAPPDATA%\Packages\AnthropicPBC.claude_*\LocalCache\Roaming\Claude\
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。