jt-mcp-server

jt-mcp-server

MCP server that equips AI agents with dev workflow tools including GitHub project management, conventional commits, visual regression testing, Jira/Confluence integration, and a persistent memory knowledge graph.

Category
Visit Server

README

jt-mcp-server

CI npm

Personal Model Context Protocol server that gives AI agents dev workflow tools — GitHub project management, conventional commits, static file serving, nvm-aware command execution, visual regression testing, Jira/Confluence integration, and more.

Quick Start

npx @houkasaurusrex/jt-mcp-server

Add to Claude Code

In your project's .claude/settings.json:

{
  "mcpServers": {
    "jt-mcp": {
      "command": "npx",
      "args": ["-y", "@houkasaurusrex/jt-mcp-server"],
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}",
        "NETLIFY_AUTH_TOKEN": "${NETLIFY_AUTH_TOKEN}",
        "ATLASSIAN_DOMAIN": "${ATLASSIAN_DOMAIN}",
        "ATLASSIAN_EMAIL": "${ATLASSIAN_EMAIL}",
        "ATLASSIAN_API_TOKEN": "${ATLASSIAN_API_TOKEN}"
      }
    }
  }
}

Tools

Dev Workflow

Tool Description
dev_serve Serve a directory on a port. Kills existing process on that port, starts serve -s, waits for 200 response, returns URL.
dev_serve_stop Stop a dev server by port.
dev_run Run a shell command with optional nvm Node version, working directory, and env vars. Resolves Node binary directly from ~/.nvm/versions/node/.
dev_port Port management — check what's using a port, kill process on a port, wait_ready until a port accepts connections.
dev_worktree Git worktree lifecycle — create (checkout + install deps), build (run build command), remove (clean up). Worktrees live at .claude/worktrees/<branch>/.
dev_install Install project dependencies using the correct package manager (auto-detected from lockfile). Supports frozen/immutable lockfile mode for CI.
dev_script Run a package.json script by name with the correct package manager. Validates the script exists and lists available scripts on error.
dev_deps Add or remove npm packages using the correct package manager. Supports devDependencies.
dev_visual_regression Orchestrate a full Playwright visual regression cycle: serve reference dir, capture baselines, serve test dir, run comparison, return results.

Search & Exploration

Tool Description
dev_grep Search file contents for patterns (regex or literal) with context lines, glob filtering. Respects .gitignore. Uses ripgrep.
dev_find Find files/directories by glob pattern. Respects .gitignore. Uses fd with git ls-files fallback.
dev_read Read file contents with line numbers, optional line ranges, binary detection, and path traversal protection.
dev_tree Display directory tree structure. Skips node_modules, .git, build artifacts, and other common noise.

GitHub

Tool Description
github_project_next_issue Get the oldest "Todo" issue from a GitHub ProjectV2 board.
github_project_set_status Update a project item's status (Todo / In Progress / Done).
github_project_complete_issue Close a GitHub issue and set its project board status to Done in one call.
github_create_pr Create a pull request via gh CLI.

Git

Tool Description
git_conventional_commit Stage files and create a conventional commit. Validates message format, refuses to stage .env or node_modules.

Jira (via acli CLI)

Requires the Atlassian CLI — run acli auth login once to authenticate.

Tool Description
jira_search Search issues with JQL, configurable fields and result limits.
jira_get_issue Get full details of an issue by key.
jira_create_issue Create issues (Task, Bug, Story, Epic) with description, assignee, labels, parent.
jira_transition Transition issue status (e.g. "In Progress", "Done").
jira_add_comment Add a comment to an issue.
jira_assign Assign (user@email, @me) or unassign an issue.

Confluence (REST API)

Requires ATLASSIAN_DOMAIN, ATLASSIAN_EMAIL, and ATLASSIAN_API_TOKEN env vars.

Tool Description
confluence_search Search pages with CQL, returns IDs, titles, spaces, excerpts.
confluence_get_page Read page content (storage XHTML, rendered HTML, or ADF).
confluence_create_page Create a page in a space, optional parent for child pages.
confluence_update_page Update page body/title with auto-incremented version.

Shell

Tool Description
shell_lint Run ShellCheck on shell scripts. Returns structured JSON findings with file, line, level, and message.

Netlify

Tool Description
netlify_deploy_status Check the latest deploy status for a Netlify site.
netlify_build_log Get build/deploy logs (last N lines) for diagnosing failed deploys and CI issues.
netlify_function_log Stream recent serverless function invocation logs for debugging.
netlify_list_deploys List recent deploys with status, branch, context, and error info.
netlify_list_functions List all deployed serverless functions for a site.

Memory (Knowledge Graph)

Tool Description
memory_add_entities Create entities (preferences, tools, projects, conventions) with a name, type, and observations.
memory_add_relations Create typed directed relations between entities (e.g. PREFERS, USES, AVOIDS).
memory_add_observations Add facts or notes to an existing entity.
memory_query Search and traverse the knowledge graph by name, type, or relation.
memory_delete Delete entities (cascades), relations, or observations.
memory_export Export the entire graph as JSON.
memory_import Import a graph from JSON (merge or replace).
memory_track_action Track a repeatable action (build, test, deploy, lint) for pattern detection.
memory_suggest_tools Analyze tracked actions to find patterns that could become new MCP tools.

Using the Memory Database

The memory tools provide a persistent knowledge graph that agents can use to remember user preferences, project conventions, and facts across sessions. Data is stored in a SQLite database at ~/.jt-memory/memory.db and auto-exported to ~/.jt-memory/memory.json on every write.

Enabling memory in a project

Add the following to your project's CLAUDE.md so the agent knows to use memory at the start of each session:

## Memory

This project uses `@houkasaurusrex/jt-mcp-server` memory tools. At the start of every session:
1. Call `memory_query` with no filters to load all stored context
2. Use the returned entities, observations, and relations to inform your work
3. When you learn new user preferences or project conventions, store them with `memory_add_entities` and `memory_add_observations`

How it works

  • Entities have a name, type, and observations (facts). Types include preference, convention, project, tool, workflow, etc.
  • Relations are directed edges between entities (e.g. JT --PREFERS--> Yarn Berry).
  • Observations are string facts attached to an entity (e.g. "Always uses single-line conventional commits").
  • The database persists at ~/.jt-memory/memory.db across all projects and sessions.
  • Every write auto-exports to ~/.jt-memory/memory.json as a human-readable backup.
  • Override paths with JT_MEMORY_DB and JT_MEMORY_EXPORT_PATH env vars.

Action tracking

The memory system can track repeatable actions agents perform across projects and suggest when patterns should become dedicated MCP tools.

Tracking an action:

{ "command": "yarn lint --fix", "description": "Auto-fix lint issues", "project": "my-app", "tags": ["lint", "fix"], "category": "lint" }

Checking for tool suggestions:

{ "min_occurrences": 3, "min_projects": 2 }

Returns exact command matches and tag-based clusters that exceed the thresholds, with suggestions for which patterns are good candidates for new tools.

Add the following to your project's CLAUDE.md to enable action tracking:

### Action Tracking

When performing substantive, repeatable actions (build, test, deploy, lint, format, git workflow),
call `memory_track_action` with command, description, project, tags, and category.
Do NOT track trivial commands (ls, cd, file reads, one-off searches).

Periodically call `memory_suggest_tools` to discover patterns worth converting to MCP tools.

Example: storing a preference

{ "entities": [{ "name": "commits", "type": "convention", "observations": ["Single-line conventional commits", "No Co-Authored-By trailers"] }] }

Example: querying at session start

{}                                // returns all entities
{ "type": "preference" }         // returns only preferences
{ "name": "yarn", "depth": 2 }   // traverse 2 levels from matching entities

Environment Variables

Variable Required for
GITHUB_TOKEN GitHub tools (PAT with repo + project scopes)
NETLIFY_AUTH_TOKEN Netlify tools
ATLASSIAN_DOMAIN Confluence tools (e.g. mycompany.atlassian.net)
ATLASSIAN_EMAIL Confluence tools (account email)
ATLASSIAN_API_TOKEN Confluence tools (create one)

Jira tools use the acli CLI which handles its own auth — run acli auth login once.

Development

yarn install
yarn build
yarn test
yarn test <pattern>   # e.g. yarn test dev-port

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