Skip to main content
Glama
Headquarter

Headquarter

by axeldotdev

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

Download the latest binary for your platform from GitHub 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)

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):

{
  "mcpServers": {
    "headquarter": {
      "command": "/path/to/headquarter-macos-arm64"
    }
  }
}

Using Node.js (From Source):

{
  "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:

npm run inspect

To build binaries locally (requires Bun):

npm run build:bin

Related MCP server: Memory Bank MCP

🛠 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

  • list_projects

  • get_project(id)

  • create_project(name, content)

  • update_project(id, name, content)

  • delete_project(id)

  • list_issues(?project_id)

  • get_issue(id)

  • create_issue(name, content, status, priority)

  • update_issue(id, name, content, status, priority)

  • delete_issue(id)

  • list_clients

  • get_client(id)

  • create_client(name, address, website, email, phone)

  • update_client(id, name, address, website, email, phone)

  • delete_client(id)

  • list_contacts(?client_id)

  • get_contact(id)

  • create_contact(name, email, phone, job_title)

  • update_contact(id, name, email, phone, job_title)

  • delete_contact(id)

  • list_notes

  • get_note(id)

  • create_note(content)

  • update_note(id, content)

  • delete_note(id)

🚀 Current Roadmap

  • Initial Project structure & Git config.

  • Quality tools setup (ESLint, Prettier, Husky).

  • Server setup

  • Build every tools

Available Tools

25 tools
create_clientC

Create a new client

Inputs: name (required), email, phone, address, +1 more.

create_contactC

Create a new contact for a client

Inputs: name (required), client_id (required), email, phone, +1 more.

create_issueC

Create a new issue in a project

Inputs: name (required), status (required), content (required), priority (required), +1 more.

create_noteC

Create a new note

Inputs: content (required).

create_projectC

Create a new project

Inputs: name (required), content (required).

delete_clientA

Delete a client and all their contacts

Inputs: id (required).

delete_contactC

Delete a contact

Inputs: id (required), client_id (required).

delete_issueB

Delete an issue

Inputs: id (required), project_id (required).

delete_noteB

Delete a note

Inputs: id (required).

delete_projectB

Delete a project and all its issues

Inputs: id (required).

get_clientA

Get a client by ID

Inputs: id (required).

get_contactC

Get a contact by ID

Inputs: id (required).

get_issueA

Get an issue by ID

Inputs: id (required).

get_noteA

Get a note by ID

Inputs: id (required).

get_projectC

Get a project by ID

Inputs: id (required).

list_clientsB

List all clients

Inputs: no named parameters.

list_contactsC

List all contacts, optionally filtered by client

Inputs: client_id.

list_issuesB

List all issues, optionally filtered by project

Inputs: project_id.

list_notesA

List all notes

Inputs: no named parameters.

list_projectsB

List all projects

Inputs: no named parameters.

update_clientC

Update an existing client

Inputs: id (required), name (required), email, phone, +2 more.

update_contactC

Update an existing contact

Inputs: id (required), name (required), client_id (required), email, +2 more.

update_issueB

Update an existing issue

Inputs: id (required), name (required), status (required), content (required), +2 more.

update_noteB

Update an existing note

Inputs: id (required), content (required).

update_projectC

Update an existing project

Inputs: id (required), name (required), content (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    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

    ActivityNo data
    ResponsivenessSyncing

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      A Model Context Protocol plugin that helps AI assistants maintain persistent project context through structured markdown files, providing a systematic approach to tracking project goals, decisions, progress, and patterns.
      3
      54 npm
      15
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      A comprehensive and efficient Model Context Protocol server for task management that works with Claude, Cursor, and other MCP clients, providing powerful search, filtering, and organization capabilities across multiple file formats.
      5
      217 npm
      47
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      AI-native productivity backend that gives your AI assistant persistent memory, pattern awareness, and computed intelligence about your work. 14 MCP tools for task management, daily planning, weekly review, and personal context.
      MIT