daksh-mcp
# daksh-mcp
An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that exposes a professional profile — projects, work experience, skills, and live GitHub activity — as tools any MCP-compatible AI client (Claude Desktop, Claude Code, etc.) can call.
Connect it to Claude Desktop and ask things like *"What fintech projects has this person shipped?"* or *"Summarize their experience at [company]"* — the client calls these tools and answers from real, structured data instead of a resume PDF.
## Tools exposed
| Tool | Input | What it does |
|---|---|---|
| `get_profile` | *(none)* | Name, title, summary, location, contact/social links |
| `list_projects` | `tag?`, `limit?` | Projects, optionally filtered by tag (e.g. `"fintech"`) |
| `get_experience` | `company?` | Work history, optionally filtered by company |
| `get_skills` | `category?` | Skills grouped by category (languages, backend, cloud, ...) |
| `get_github_activity` | `username?`, `limit?` | Live call to the GitHub REST API for recently updated public repos |
All inputs are validated with [Zod](https://zod.dev) schemas.
## Project structure
```
data/profile.json Static source data — replace this with your own info
src/schema.ts Zod schemas for the profile data shape
src/data.ts Loads + validates profile.json at startup
src/github.ts GitHub REST API client (fetch-based, optional token)
src/tools/*.ts One file per tool: input schema + handler
src/index.ts Wires everything into an McpServer over stdio
```
## Setup
```bash
npm install
cp .env.example .env # optional: add a GITHUB_TOKEN to raise API rate limits
npm run build
```
Then edit [data/profile.json](data/profile.json) with your own projects, experience, and skills.
## Running & testing locally
### Option A — MCP Inspector
```bash
npm run build
npx @modelcontextprotocol/inspector node dist/index.js
```
Opens a browser UI to see the tool list and call each tool with arbitrary arguments.
### Option B — Claude Desktop
Add this server to Claude Desktop's config file:
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"daksh-mcp": {
"command": "node",
"args": ["ABSOLUTE_PATH_TO_REPO/dist/index.js"]
}
}
}
```
Restart Claude Desktop and ask it questions about the profile in `data/profile.json`.
### Option C — Claude Code
Claude Code can attach to the same server via `claude mcp add`, using the same command/args as above.
## Environment variables
See [.env.example](.env.example). `GITHUB_TOKEN` is optional — it raises the GitHub API rate limit from 60/hr (unauthenticated) to 5000/hr. The server works without it.
TDQS
Scored across 5 tools
Each tool maps to a distinct facet of Daksh's professional identity: profile, projects, experience, skills, and GitHub activity. There is no meaningful overlap between the tools, and the descriptions reinforce their unique purposes.
The naming pattern is mostly consistent with get_* for singular resources (get_profile, get_experience, get_skills, get_github_activity). The one deviation is list_projects, which uses list_ instead of get_, but it remains clear and predictable.
Five tools is well-scoped for a personal professional profile server. Each tool serves a clear purpose without redundancy or bloat.
The tool set covers the core sections of a professional identity: bio, projects, work history, skills, and live GitHub activity. Contact and social links are included in the profile, so there are no obvious missing operations for the server's stated domain.