My First MCP
Provides an optional Gmail integration adapter for connecting job tracking workflows and application follow-ups with Gmail.
Provides an optional Notion integration adapter for connecting job tracking workflows and application data with Notion.
Provides an optional Telegram integration adapter for connecting job tracking workflows and notifications with Telegram.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@My First MCPgreet Alice"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Job Tracker MCP
A local-first MCP server for tracking applications, contacts, interviews, follow-ups, and career workflows from Claude or any compatible MCP client.
Why it exists
Job searches create many small, high-context tasks: remembering status changes, following up at the right time, preparing for interviews, and keeping contact history connected to applications. Job Tracker MCP turns those tasks into validated tools backed by local SQLite storage, with a REST API and dashboard when a visual workflow is useful.
Related MCP server: mcpscope
Features
Area | Included |
MCP | 25 tools, resources, prompts, stdio, and Streamable HTTP |
Storage | SQLite by default, JSON fallback, migration, history, undo, duplicate warnings |
Workflow | Applications, contacts, interviews, next actions, stale/conversion/health insights, reports, CSV import/export |
API | REST routes, API-key auth, rate limiting, OpenAPI, webhooks, structured errors |
Integrations | Calendar, Notion, Gmail, Telegram, and generic webhook adapters |
Dashboard | Board, timeline, contacts, search, filters, demo mode, dark mode, English/Arabic RTL |
Operations | Configurable tracker types, redacted logging, Docker image, npm package, generated tool reference |
Quick start
npm ci
npm run build
npm run devThe last command starts the stdio MCP server. To run the REST API instead:
npm run dev:apiTo inspect the MCP server interactively:
npm run inspectNode.js 22 or newer is recommended. Runtime data is created under data/ and is ignored by Git.
Use with MCP clients
Build first so the client runs the compiled package. Replace /absolute/path/to/repo with the clone location.
Claude Desktop, macOS and Linux
Typical config file: ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, or ~/.config/Claude/claude_desktop_config.json on Linux.
{
"mcpServers": {
"job-tracker": {
"command": "node",
"args": ["/absolute/path/to/repo/dist/index.js"],
"cwd": "/absolute/path/to/repo"
}
}
}Claude Desktop, Windows
Use forward slashes in JSON paths:
{
"mcpServers": {
"job-tracker": {
"command": "C:/Program Files/nodejs/node.exe",
"args": ["C:/Users/YOUR_USERNAME/path/to/repo/dist/index.js"],
"cwd": "C:/Users/YOUR_USERNAME/path/to/repo"
}
}
}Cursor or VS Code
Register the same command in the client's MCP settings. The command is node, the argument is the absolute path to dist/index.js, and the working directory is the repository root. Restart the client after changing its configuration.
Configuration
tracker.config.json defines the default jobs tracker and alternate scholarships, university, and visas workflows. Set TRACKER_CONFIG_PATH to load another file and TRACKER_TYPE to select a tracker.
Important environment variables:
Variable | Purpose |
|
|
| Start the REST API on port 3001 |
| Start the Streamable HTTP MCP server on port 3000 |
| Require an |
| Set Pino log verbosity |
| Requests allowed per rate-limit window |
| Dashboard API base URL |
| Run the dashboard without a backend |
Dashboard
Live demo: https://jht127.github.io/job-tracker-mcp/
cd job-tracker-dashboard/job-tracker-dashboard
npm ci
npm run devFor a production build, run npm run build. The dashboard uses the API first and falls back to demo data when VITE_DEMO=true or the API is unavailable.
Documentation
Tool reference maintenance
The tool reference is generated from the live built MCP server and its actual schemas:
npm run build
npm run generate:tools
npm run check:toolsCI fails when docs/tool-reference.md is stale.
Architecture
flowchart LR
Client[MCP client] --> Transport[stdio or Streamable HTTP]
Browser[Dashboard] --> REST[REST API]
Transport --> Tools[MCP tools]
Tools --> Core[Shared core services]
REST --> Core
Core --> Storage[(SQLite or JSON)]
Core --> Integrations[Optional integrations]Live demo
The hosted dashboard runs in VITE_DEMO=true mode with fictional in-memory data, so visitors can try the board, timeline, contacts, search, theme, language, and Connect Claude views without backend credentials. See docs/demo-script.md for the walkthrough.
Development
npm ci
npm run typecheck
npm run lint
npm test
npm run buildFor package and container checks:
npm pack
docker build -t job-tracker-mcp:local .The project uses Conventional Commits. See CONTRIBUTING.md before opening a pull request.
License
ISC. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
POC MCP server. Tool say_hello returns 'Welcome' (agent -> MCP -> API path).
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- AlicenseCqualityDmaintenanceA simple MCP server that provides a basic greeting tool for saying hello with customizable names. Serves as a boilerplate template for developers to quickly create and deploy new MCP servers.17 npmMIT
- FlicenseAqualityDmaintenanceA simple local MCP server that provides greeting and integer addition tools.2-
- FlicenseBqualityDmaintenanceA simple MCP server that provides greeting tools such as hello and greet_multiple to return friendly messages.2-
- AlicenseAqualityDmaintenanceA minimal MCP server that provides a single 'hello' tool returning 'Hello, world!'.27 npmMIT