Headquarter
by axeldotdev
README.md
# Headquarter
**Headquarter** is an open-source, AI-first business and project management tool. It uses a "Ghost" architecture where data is stored locally in human-readable Markdown and JSON files, exposed via the **Model Context Protocol (MCP)**.
## Installation
### Quick Install (Recommended)
Download the latest binary for your platform from [GitHub Releases](https://github.com/axeldotdev/headquarter/releases):
| Platform | File |
| --------------------- | ------------------------------- |
| macOS (Apple Silicon) | `headquarter-macos-arm64.zip` |
| macOS (Intel) | `headquarter-macos-x64.zip` |
| Linux | `headquarter-linux-x64.tar.gz` |
| Windows | `headquarter-windows-x64.zip` |
Extract the archive and configure your MCP client (see below).
### Install from Source (For Developers)
```bash
git clone https://github.com/axeldotdev/headquarter.git
cd headquarter
npm install
npm run build
```
### Configure Your MCP Client
Add the server to your MCP client configuration. For **Claude Desktop**, edit your config file:
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
**Using the binary (Quick Install):**
```json
{
"mcpServers": {
"headquarter": {
"command": "/path/to/headquarter-macos-arm64"
}
}
}
```
**Using Node.js (From Source):**
```json
{
"mcpServers": {
"headquarter": {
"command": "node",
"args": ["/path/to/headquarter/dist/index.js"]
}
}
}
```
Replace `/path/to/...` with the actual path to the binary or cloned repository.
### Verify Installation
Restart Claude Desktop (or your MCP client) and the Headquarter tools should be available. You can test by asking Claude to list projects or create a new one.
### Development
For debugging, use the MCP Inspector:
```bash
npm run inspect
```
To build binaries locally (requires [Bun](https://bun.sh)):
```bash
npm run build:bin
```
## 🛠Tech Stack
- **Language:** Node.js with **TypeScript** (Strict Mode).
- **Architecture:** Modular MCP Server + CLI.
- **Protocol:** MCP SDK 1.25+
- **Data Format:** Markdown with YAML Frontmatter (via `gray-matter`) and JSON.
- **Validation:** `Zod` for schema definition and runtime type-safety.
- **Code Quality:**
- **ESLint:** Logic & Type checking (The "PHPStan").
- **Prettier:** Formatting (The "Pint").
- **Husky:** Git hooks for pre-commit linting.
## Tools
- [x] list_projects
- [x] get_project(id)
- [x] create_project(name, content)
- [x] update_project(id, name, content)
- [x] delete_project(id)
- [x] list_issues(?project_id)
- [x] get_issue(id)
- [x] create_issue(name, content, status, priority)
- [x] update_issue(id, name, content, status, priority)
- [x] delete_issue(id)
- [x] list_clients
- [x] get_client(id)
- [x] create_client(name, address, website, email, phone)
- [x] update_client(id, name, address, website, email, phone)
- [x] delete_client(id)
- [x] list_contacts(?client_id)
- [x] get_contact(id)
- [x] create_contact(name, email, phone, job_title)
- [x] update_contact(id, name, email, phone, job_title)
- [x] delete_contact(id)
- [x] list_notes
- [x] get_note(id)
- [x] create_note(content)
- [x] update_note(id, content)
- [x] delete_note(id)
## 🚀 Current Roadmap
- [x] Initial Project structure & Git config.
- [x] Quality tools setup (ESLint, Prettier, Husky).
- [x] Server setup
- [x] Build every toolsTDQS
A3.5/5.0
Scored across 25 tools
Disambiguation5/5
Every tool targets a distinct resource (client, contact, issue, note, project) with a unique action, making each tool's purpose clear and unambiguous.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern (create_, delete_, get_, list_, update_) with the noun being the resource type, ensuring predictability.
Tool Count4/5
25 tools is slightly high but appropriate for a domain covering five entities with full CRUD operations; each tool serves a distinct purpose and earns its place.
Completeness5/5
The tool surface provides full CRUD (create, read, update, delete, list) for clients, contacts, issues, notes, and projects, leaving no obvious gaps for basic lifecycle operations.
Maintenance
ActivityInactive
ResponsivenessSyncing