AutoHotkey v2 MCP Server
Model Context Protocol
[!IMPORTANT] UPDATED 10/1/25: GitHub Spec Kit integration complete!Project now follows specification-driven development with constitutionalframework, architectural decision records, and comprehensive planningtemplates. Enhanced reliability improvements and type safety across all tools.
Overview
AutoHotkey v2 MCP Server provides comprehensive development tools forAutoHotkey v2 through the Model Context Protocol. Features intelligent codeanalysis, file management, script execution, and context-aware assistance forLLMs working with AutoHotkey code.
This project follows Specification-Driven Development using GitHub's SpecKit framework. See .specify/ directory for architectural decisions,specifications, and development templates.
Recent Updates
Version 2.0.0 - Production Ready:
- ๐ Smart File Orchestrator - Reduces tool calls from 7-10 to 3-4 withintelligent caching
- 25+ MCP tools with enhanced descriptions
- Tool usage analytics and performance tracking
- Smart context injection based on usage patterns
- Resource subscription system
- Active file context in tool listings
- MCP prompts and resources for coding standards
- Consolidated and improved documentation
Table of Contents
- Overview
- Recent Updates
- Specification-Driven Development
- Example
- Features
- LSP-like Capabilities
- AutoHotkey v2 Specific Features
- Installation
- Prerequisites
- Setup
- Claude Desktop Configuration
- MCP Tools
- Core Analysis Tools
- Built-in AutoHotkey Prompts
- Documentation
- Contributing
- License
Example
An overly simplistic example:
- User asks for a clipboard manager tool:
- LLM creates a plan which includes steps like this:
The user wants me to create a clipboard manager script in AutoHotkey v2. Let me break down the requirements:
Core Functionality:
Monitor clipboard changes
Display collected entries in a GUI
Toggle collection with F6 hotkey
Save content back to clipboard when closing
- The MCP grabs these words from keywords: Clipboard, GUI, Toggle, and Hotkey
- The MCP sends back more detailed context. For clipboard this would besomething like:
The users clipboard can be accessed by the A_Clipboard built-in variable. If the users request involves determining whether or not a clipboard value has changed, use the OnClipboardChanged function object. Clipboard all is used if the user needs to save the clipboard temporarily. When the operation is completed, the script restores the original clipboard contents.
- The LLM then returns code with much better accuracy.
Specification-Driven Development
This project follows GitHub's Spec Kit methodology for specification-drivendevelopment:
๐ Constitutional Framework
The project is governed by .specify/memory/constitution.md - 14 non-negotiableprinciples:
- Article I: Type Safety (TypeScript strict mode + Zod)
- Article II: MCP Protocol Compliance
- Article III: AutoHotkey v2 Purity
- Article IV: Test-First Development (RED-GREEN-Refactor)
- Article V-XIV: Performance, Security, Modularity, UX, and more
๐ Architectural Decisions
All major technical decisions documented in.specify/specs/architecture-decisions.md:
- ADR-001: Why TypeScript over JavaScript
- ADR-003: Why FlexSearch for documentation search
- ADR-006: Why PowerShell for window detection
- ADR-011: Why
AHK_*tool naming convention - ...and 11 more ADRs explaining the "why" behind the architecture
๐ Specifications & Plans
- Master Spec:
.specify/specs/ahk-mcp-master-spec.md- What the system ISand WHY - Technical Plan:
.specify/specs/ahk-mcp-technical-plan.md- HOW it'simplemented - Templates:
.specify/templates/- Spec, plan, and task templates for newfeatures
๐ Development Workflow
New features follow a structured process:
- Specify (
/specify) - Define WHAT and WHY (not technical) - Plan (
/plan) - Technical architecture and decisions - Tasks (
/tasks) - Implementation roadmap with test-first approach - Implement - Code following the spec and plan
See .specify/templates/ for starting points.
Features
LSP-like Capabilities
- Code Completion: Intelligent suggestions for functions, variables,classes, methods, and keywords
- Diagnostics: Syntax error detection and AutoHotkey v2 coding standardsvalidation
- Script Analysis: Comprehensive code analysis with contextual documentation
- Go-to-Definition: Navigate to symbol definitions (planned)
- Find References: Locate symbol usage throughout code (planned)
AutoHotkey v2 Specific Features
- Built-in Documentation: Comprehensive AutoHotkey v2 function and classreference
- Coding Standards: Enforces Claude-defined AutoHotkey v2 best practices
- Hotkey Support: Smart completion for hotkey definitions
- Class Analysis: Object-oriented programming support with method andproperty completion
- Contextual Help: Real-time documentation and examples for built-inelements
Installation
Prerequisites
Before installing the AutoHotkey v2 MCP Server, ensure you have:
- Node.js 18.0.0 or later
- npm or yarn package manager
Setup
Clone and install dependencies:
git clone https://github.com/TrueCrimeAudit/ahk-mcp.git cd ahk-mcp npm installBuild the project:
npm run buildStart the server:
npm startFor development with auto-reload:
npm run dev
Claude Desktop Configuration
Add the server to your Claude Desktop configuration file(claude_desktop_config.json):
Windows Configuration:
{
"mcpServers": {
"ahk": {
"command": "C:\\Program Files\\nodejs\\node.exe",
"args": ["C:\\Users\\YourUsername\\path\\to\\ahk-mcp\\dist\\index.js"],
"env": {
"NODE_ENV": "production",
"AHK_MCP_LOG_LEVEL": "warn"
}
}
}
}
Debug Configuration (for troubleshooting):
{
"mcpServers": {
"ahk-server": {
"autoApprove": [
"analyze_code",
"find_variables",
"get_function_info",
"get_class_info"
],
"disabled": false,
"timeout": 60,
"command": "C:\\Program Files\\nodejs\\node.exe",
"args": ["C:\\path\\to\\ahk-mcp\\dist\\index.js"],
"transportType": "stdio",
"env": {
"NODE_ENV": "production",
"AHK_MCP_LOG_LEVEL": "debug"
}
}
}
}
Important Notes:
- Replace
YourUsernamewith your actual Windows username - Replace
path\\to\\ahk-mcpwith the actual path to your installation - Use absolute paths for both Node.js and the script
- Use double backslashes (
\\) in Windows paths for proper JSON escaping - Set
AHK_MCP_LOG_LEVELtodebugfor troubleshooting,warnfor normal use
MCP Jam Configuration
To add this server in MCP Jam:
- Click Add MCP Server
- Fill in the fields:
| Field | Value |
|---|---|
| Server Name | ahk-mcp |
| Connection Type | STDIO |
| Command | node C:\Users\YourUsername\path\to\ahk-mcp\dist\server.js |
Important: The command must point to
dist/server.js(notserver.jsinroot)
- Environment Variables (optional):
| Variable | Value | Description |
|---|---|---|
NODE_ENV |
production |
Production mode |
AHK_MCP_LOG_LEVEL |
warn |
Log level (debug, info, warn, error) |
- Click Add Server
Alternative using npx (if published to npm):
npx ahk-mcp-server
MCP Tools
Tool Naming Convention
- All tools now use the
AHK_<Word>_<Word>format (e.g.AHK_File_View,AHK_File_Edit_Diff). - Previous lowercase names such as
ahk_file_vieware no longer registered bythe server. - Mixing the old names in tool chains previously triggered "Unknown tool" errorsbecause
server.tsonly dispatchedahk_*handlers. The dispatcher, toolrecommendations, and configuration settings now agree on the newAHK_*identifiers so chained calls proceed correctly.
Core Analysis Tools
AHK_Smart_Orchestrator ๐
Intelligently orchestrates file operations to minimize redundant tool calls.Automatically chains detect โ analyze โ read โ edit workflow with smart caching.
Key Benefits:
- Reduces tool calls from 7-10 to 3-4 (60% reduction)
- Session-scoped caching with staleness detection
- Automatic line range calculation
- Cache hit rate: ~65% in production use
{
intent: string, // What you want to do (required)
filePath?: string, // Direct file path (skips detection)
targetEntity?: string, // Class, method, or function name
operation: 'view' | 'edit' | 'analyze', // Operation type (default: view)
forceRefresh?: boolean // Force re-analysis (default: false)
}
Examples:
// View a specific class
{ intent: "view the _Dark class", targetEntity: "_Dark", operation: "view" }
// Edit with direct path
{ intent: "modify checkbox styling", filePath: "C:\\path\\to\\file.ahk",
targetEntity: "_Dark.ColorCheckbox", operation: "edit" }
// Analyze structure
{ intent: "understand file structure", filePath: "C:\\path\\to\\file.ahk",
operation: "analyze" }
See docs/SMART_ORCHESTRATOR.md for details.
AHK_Run
Execute AutoHotkey scripts with window detection and timeout handling.
{
mode: 'run' | 'test', // Execution mode
filePath?: string, // Path to .ahk file (or use content)
content?: string, // Script content to execute
wait?: boolean, // Wait for completion (default: true)
detectWindow?: boolean, // Enable window detection (default: false)
windowDetectTimeout?: number, // Window detection timeout in ms
ahkPath?: string // Custom AutoHotkey executable path
}
AHK_Diagnostics
Validates code syntax and enforces coding standards with detailed errorreporting.
{
code: string, // AutoHotkey v2 code to analyze
enableClaudeStandards?: boolean, // Apply coding standards (default: true)
severity?: string // Filter: 'error' | 'warning' | 'info' | 'all'
}
AHK_Analyze
Comprehensive script analysis with contextual documentation and usage insights.
{
code: string, // AutoHotkey v2 code to analyze
includeDocumentation?: boolean, // Include documentation for built-in elements (default: true)
includeUsageExamples?: boolean, // Include usage examples (default: false)
analyzeComplexity?: boolean // Analyze code complexity (default: false)
}
Built-in AutoHotkey Prompts
The server includes 7 ready-to-use AutoHotkey v2 prompts accessible throughClaude:
- File System Watcher - Monitor directory changes with callbacks
- CPU Usage Monitor - Display real-time CPU usage in tooltips
- Clipboard Editor - GUI-based clipboard text manipulation
- Hotkey Toggle Function - Dynamic hotkey management with feedback
- Link Manager - URL validation and browser integration
- Snippet Manager - Text snippet storage and insertion system
Access these prompts through Claude's interface by typing / and selecting fromthe available AutoHotkey prompts.
Documentation
Doc Index
docs/README.md- Documentation indexdocs/QUICK_START.md- Quick start setupdocs/QUICKREFERENCE.md- One-page overviewdocs/PLAINLANGUAGE_SUMMARY.md- Plain-language walkthroughdocs/ARCHITECTURE_DIAGRAMS.md- System diagramsdocs/DOCKER.md- Docker deploymentdocs/CODE_EXECUTION.md- Code execution contextdocs/TASKS.md- MCP task supportdocs/TECHNICAL_DEBT_CLEANUP_GUIDE.md- Technical debt cleanup guide
Project Documentation
- Quick Start:
docs/QUICK_START.md- Get up and running quickly - Claude Desktop Setup:
docs/CLAUDE_DESKTOP_SETUP.md - Claude Code Setup:
docs/CLAUDE_CODE_SETUP.md - Settings Guide:
docs/SETTINGS_GUIDE.md- Configuration options - Coding Agent Guide:
docs/CODING_AGENT_GUIDE.md- AI agent integrationpatterns - Release Notes:
docs/RELEASE_NOTES.md- Version history
Specification Documents
- Constitution:
.specify/memory/constitution.md- Project governance - Master Spec:
.specify/specs/ahk-mcp-master-spec.md- Systemspecification - Technical Plan:
.specify/specs/ahk-mcp-technical-plan.md-Implementation details - ADR Log:
.specify/specs/architecture-decisions.md- Decision records
AutoHotkey v2 Data
The server includes comprehensive AutoHotkey v2 documentation:
- Functions: 200+ built-in functions with parameters and examples
- Classes: GUI, File, Array, Map, and other core classes
- Variables: Built-in variables like A_WorkingDir, A_ScriptName
- Methods: Class methods with detailed parameter information
- Directives: #Include, #Requires, and other preprocessor directives
Contributing
Development Workflow
This project follows specification-driven development:
- Read the Constitution:
.specify/memory/constitution.md- Non-negotiableprinciples - Review ADRs:
.specify/specs/architecture-decisions.md- Understand pastdecisions - Create a Spec: Use
.specify/templates/spec-template.mdto define WHATand WHY - Create a Plan: Use
.specify/templates/plan-template.mdto define HOW - Break Down Tasks: Use
.specify/templates/tasks-template.mdforimplementation - Follow Test-First: Write tests BEFORE implementation (Article IV)
Key Principles
- Type Safety: TypeScript strict mode + Zod validation
- MCP Compliance: Standard response format with
isErrorflag - AHK v2 Only: No AutoHotkey v1 support
- Test-First: RED-GREEN-Refactor cycle
- Tool Naming:
AHK_Category_Actionconvention
See CONTRIBUTING.md for detailed guidelines (coming soon).
License
This project is licensed under the MIT License - see the LICENSE filefor details.
Built with โค๏ธ for the community