Claude Typer

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.

Category
Visit Server

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:

  1. Claude generates the text and calls type_text()
  2. The text is staged (not typed yet) and shown to you as a preview
  3. You review it and say "looks good" → Claude calls approve_pending() → typing begins
  4. 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.json is 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.log for 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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured