Skip to main content
Glama
mrcodefrost

daksh-mcp

by mrcodefrost
README.md
# 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

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

Five tools is well-scoped for a personal professional profile server. Each tool serves a clear purpose without redundancy or bloat.

Completeness5/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues