Server data from the Official MCP Registry
Ask about an operator's work, reusable patterns, availability and offer. Typed tools, eval-gated.
About
Ask about an operator's work, reusable patterns, availability and offer. Typed tools, eval-gated.
Remote endpoints: streamable-http: https://ask-me-mcp-xi.vercel.app/api/mcp
Security Report
A well-architected persona MCP server with proper OAuth 2.1 authentication, typed tool contracts, and external data grounding. The codebase demonstrates thoughtful security practices including stateless request handling, PKCE support, and token refresh rotation. Minor code quality issues (broad exception handling, limited input validation on OAuth form parsing) and permissions appropriate for a developer tools server prevent a higher score, but these are not material security risks. Supply chain analysis found 3 known vulnerabilities in dependencies (2 critical, 1 high severity).
7 files analyzed · 8 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
How to Install & Connect
Available as Local & Remote
This plugin can run on your machine or connect to a hosted endpoint. during install.
Documentation
View on GitHubFrom the project's GitHub README.
ask-me-mcp
A persona MCP server. Ask Claude / ChatGPT / Grok about the operator's work, patterns, availability, and offer — grounded in their public résumé, projects index, and offer page.
Reference implementation of the MCP-Server Harness pattern. This repo is a working example of the same architecture the operator sells as a productized 6-week engagement. If you like the shape, that's the sales pitch — see The pattern at the bottom.
What it does
Six typed tools any AI-assistant user can call:
| Tool | What it returns |
|---|---|
get_current_focus | Current allocation, active engagements, and the primary vertical wedge in progress. |
get_engagement_summary | A specific engagement (NXT Robotics, AIMIA, Hydrostasis, Digital QR Card) described at a public-safe level. |
search_reusable_patterns | Keyword search over the operator's 12+ reusable engineering-patterns catalog. |
check_availability | How many Playbook / Retainer slots are open + earliest next-open date. |
get_offer_details | Current bundled offer: MCP-Server Playbook + Fractional CTO Retainer. |
book_discovery_call | Instructions + prep guidance for booking a discovery call. Does not auto-schedule. Explicitly refuses to negotiate price. |
Every response ships with a confidence label and a source citation. The server never invents; if the grounding data doesn't say it, the server doesn't say it.
Install (as a user)
The remote endpoint speaks MCP Streamable HTTP + OAuth 2.1. Three ways to connect:
1. Claude Desktop — connector directory ("Connect" button)
Add via the Claude Desktop UI: Settings → Connectors → Add custom connector → URL: https://ask-me-mcp-xi.vercel.app/api/mcp. Click Connect. The desktop client discovers OAuth metadata, registers as a client, exchanges tokens, and mounts the tools. No manual config.
2. Claude Desktop / Claude Code — config file (skip OAuth)
Add to claude_desktop_config.json — location varies by OS; see Claude Desktop config docs:
{
"mcpServers": {
"ask-me": {
"url": "https://ask-me-mcp-xi.vercel.app/api/mcp"
}
}
}
3. Claude Code CLI
claude mcp add --scope user ask-me https://ask-me-mcp-xi.vercel.app/api/mcp
Local stdio (development)
For local stdio dev (no HTTP, no OAuth — auth doesn't apply to stdio):
{
"mcpServers": {
"ask-me": {
"command": "node",
"args": ["/absolute/path/to/ask-me-mcp/dist/src/server.js"]
}
}
}
Then in any Claude Code session:
what's Ilyes's current focus? what patterns has he shipped for LLM evaluation? is he available for a Playbook engagement in October?
Develop (as a maintainer)
Requirements
- Node.js 20+
- npm (or pnpm / yarn — package.json is npm-first)
Setup
git clone https://github.com/tounsils/ask-me-mcp.git
cd ask-me-mcp
npm install
Run locally as a stdio server
npm run dev
Point Claude Code or the MCP Inspector at the resulting process.
Build for production
npm run build
Outputs to dist/.
Deploy to Vercel
# Set the JWT signing secret (one-time; required for OAuth).
vercel env add MCP_JWT_SECRET production
# Paste a long random string. Generate one: `openssl rand -base64 48`.
vercel deploy --prod
The api/mcp.ts handler serves the Streamable HTTP transport with OAuth 2.1 protection — the format Claude's connector directory and ChatGPT's Apps SDK both use. See docs/oauth-flow.md for the full architecture.
Run the eval corpus
npm run eval # 15 tool cases against handlers directly (no HTTP)
npm run eval:oauth # 6-step end-to-end OAuth flow (needs MCP_JWT_SECRET)
The tool corpus fails the build if fewer than a threshold percentage of expected answers match. Pass or nothing ships.
The OAuth flow test exercises register → authorize → token → protected /api/mcp → 401 challenge → refresh — all in-process against Vercel-shaped mock req/res objects.
Repository layout
ask-me-mcp/
├── src/
│ ├── server.ts # shared MCP server (used by both stdio + HTTP)
│ ├── tools/ # six typed tool implementations
│ │ ├── getCurrentFocus.ts
│ │ ├── getEngagementSummary.ts
│ │ ├── searchReusablePatterns.ts
│ │ ├── checkAvailability.ts
│ │ ├── getOfferDetails.ts
│ │ └── bookDiscoveryCall.ts
│ ├── grounding/
│ │ ├── data.json # pre-extracted structured facts (v0)
│ │ └── index.ts # loaders + search helpers
│ └── rails/
│ └── confidence.ts # confidence + source-citation wrapper; refusal helper
│ └── oauth/ # OAuth 2.1 + PKCE + anonymous DCR
│ ├── config.ts # issuer, scopes, TTLs, endpoint paths
│ ├── jwt.ts # HS256 sign/verify (via `jose`)
│ ├── clientRegistry.ts # client_id = signed JWT (no DB)
│ └── codeGrant.ts # auth code + access/refresh token + PKCE S256
├── api/
│ ├── mcp.ts # Vercel serverless entry (Streamable HTTP + Bearer auth)
│ ├── health.ts # diagnostic (unauthenticated)
│ ├── register.ts # RFC 7591 DCR
│ ├── authorize.ts # authorization endpoint (auto-approves)
│ ├── token.ts # token exchange with PKCE
│ ├── oauth-protected-resource.ts # RFC 9728 metadata
│ └── oauth-authorization-server.ts # RFC 8414 metadata
├── eval/
│ ├── corpus.json # 15 tool cases + expected answers
│ ├── runner.ts # replays tool corpus, threshold-gated
│ └── oauth-flow.ts # 6-step OAuth end-to-end test
├── docs/
│ └── oauth-flow.md # OAuth architecture + how to swap for real user identity
├── package.json
├── tsconfig.json
├── vercel.json
└── README.md
The pattern: the MCP-Server Harness
This project is a reference implementation of a pattern the operator ships to clients as a productized 6-week engagement — the MCP-Server Product Playbook.
The shape:
- Typed tool contract. Six JSON-schema-strict tools. Nothing free-form. The model can only invoke these, only with these arguments.
- Coordinator + specialists (extensible). v0 has one coordinator (the MCP server routing tool calls). v1 will add elicitation + supervisor agents inside more complex tools.
- Typed signal vector. Structured facts extracted from the grounding data. Not free-text.
- Versioned reasoning specification. The tool implementations ARE the reasoning spec — versioned in the code, not in a prompt.
- Rails + confidence. Every response carries
confidence+sources+ optionaldisclaimers. The model can display them. - External grounding. The server queries
src/grounding/data.json; the model never invents. - Evaluation corpus + eval runner + certification.
eval/corpus.jsonhas expected answers;npm run evalreplays them. Ships or doesn't.
If you're building a product that fits this shape (career guidance, medical triage, legal intake, financial planning, coaching, expert-system anything), the operator sells a 6-week fixed-scope engagement to ship it. See get_offer_details or email tounsils@gmail.com.
License
MIT. See LICENSE.
Attribution
Built by Ilyes Tounsi · Carlsbad, CA · tounsils.github.io.
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
mcp-creator-python
Freeby mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
MarkItDown
Freeby Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
