MySkillDB Job Categories MCP
Enables AI assistants to manage job categories in a college org through the MySkillDB API, with tools for listing, fetching, upserting, batch pushing, and deletion. Supports both HTTP and stdio modes with OAuth login.
README
MySkillDB Job Categories MCP
MCP server so Claude (Desktop / Code) or Cursor can push job categories into a college org through the MySkillDB API.
Source layout
src/
index.ts # stdio entry (Cursor / Claude Desktop)
http.ts # HTTP entry (Claude Connect)
types/ # interfaces (config, API, OAuth)
schemas/ # Zod schemas for tool inputs
helpers/ # env, jwt, string, http, mcp-result
services/ # MySkillDB API + auth clients
oauth/ # login page + in-memory OAuth store
tools/ # MCP tool registration
server/ # HTTP connector routing
Two ways to run it:
| Mode | File | Auth | Best for |
|---|---|---|---|
| HTTP connector (recommended) | src/http.ts |
Click Connect → login page | Claude custom connectors |
| Stdio | src/index.ts |
JWT + org id in env | Cursor / Claude Desktop |
Prerequisites
cd MySkillDb-mcp
npm install
MySkillDB API must be running (default http://localhost:3001).
Tools
| Tool | Purpose |
|---|---|
list_job_categories |
List categories for the org |
get_job_category |
Fetch one by slug or id |
upsert_job_category |
Create or update one category (match by categoryKey / slug) |
push_job_categories |
Batch upsert (up to 50) — best for Claude-authored catalogs |
ensure_other_category |
Ensure the catch-all Other category exists |
delete_job_category |
Delete by id (Other is protected server-side) |
HTTP connector — "Connect" with login
npm run start:http
# MCP endpoint: http://localhost:3737/mcp
In Claude → Settings → Connectors → Add custom connector, enter:
http://localhost:3737/mcp
Click Connect — a MySkillDB login page opens. Sign in as org admin; tokens refresh automatically. Org is taken from the logged-in user.
If Claude requires HTTPS, tunnel it:
npx cloudflared tunnel --url http://localhost:3737Then restart with
MCP_PUBLIC_URL=https://your-tunnel-domain.trycloudflare.com npm run start:http.
| Env | Default |
|---|---|
MYSKILLDB_API_BASE_URL |
http://localhost:3001/api |
MCP_PORT |
3737 |
MCP_PUBLIC_URL |
http://localhost:3737 (set when tunneling) |
Stdio mode (Cursor / Claude Desktop)
1. Get an access token
curl -s -X POST http://localhost:3001/api/auth/login \
-H 'Content-Type: application/json' \
-d '{"email":"you@college.edu","password":"your-password"}'
Use accessToken and organizationId from the response. Role must be org_admin, acc_manager, or master_admin.
2. Export secrets in your shell (recommended)
export MYSKILLDB_ACCESS_TOKEN='...'
export MYSKILLDB_ORGANIZATION_ID='...'
Do not commit real JWTs.
3. Cursor (dynamic paths)
Copy mcp.config.example.json into the monorepo root at .cursor/mcp.json:
{
"mcpServers": {
"myskilldb-job-categories": {
"command": "npm",
"args": ["start"],
"cwd": "${workspaceFolder}/MySkillDb-mcp",
"env": {
"MYSKILLDB_API_BASE_URL": "http://localhost:3001/api",
"MYSKILLDB_ACCESS_TOKEN": "${env:MYSKILLDB_ACCESS_TOKEN}",
"MYSKILLDB_ORGANIZATION_ID": "${env:MYSKILLDB_ORGANIZATION_ID}"
}
}
}
}
${workspaceFolder} resolves to the project root — no absolute path to edit per machine.
If you open only MySkillDb-mcp as the workspace, set "cwd": "${workspaceFolder}" instead.
4. Claude Desktop (absolute path)
Claude Desktop does not support ${workspaceFolder}. Copy mcp.config.claude-desktop.example.json into:
~/Library/Application Support/Claude/claude_desktop_config.json
Replace /ABSOLUTE/PATH/TO/SkillDB-og/MySkillDb-mcp with your real path (and paste JWT/org id, or export them and reference if your host supports it). Restart Claude Desktop.
Example prompt
Using the MySkillDB job categories MCP, push a Tech category for "Backend Engineering" with slug
backend-engineering, categoryKeybackend, about/day-in-life/skills/tools/growth plan suitable for Indian campus placement students. Then list categories to confirm.
Local smoke test
export MYSKILLDB_API_BASE_URL=http://localhost:3001/api
export MYSKILLDB_ACCESS_TOKEN=...
export MYSKILLDB_ORGANIZATION_ID=...
npm run inspect
Notes
- MySkillDB server must be running.
- Token must belong to an admin role that can write
/api/job-categories. - Never commit real JWTs — use
${env:...}in Cursor or local-only config. - stdout is reserved for MCP JSON-RPC; logs go to stderr.
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.