mcpField
A
Ask Me

Ask Me

Remote
tounsils.github.ioBusiness & Marketing1Updated 9w ago

About Ask Me

Ask Me is a persona MCP server for AI-assistant users who want grounded information about an operator’s work, reusable patterns, availability, and offer. Typed tools, source citations, confidence labels, and evaluation checks constrain responses to the supplied public data.

Key features

  1. 01Six typed information tools
  2. 02Résumé and project-based grounding
  3. 03Confidence labels and source citations
  4. 04Evaluation corpus gates releases

Use cases

  1. 01Check an operator’s current focus and availability
  2. 02Find reusable engineering patterns
  3. 03Review engagement and offer details
  4. 04Prepare to book a discovery call

MCP support

Exposes six typed tools to MCP clients over stdio or Streamable HTTP. The remote endpoint uses OAuth 2.1; responses include confidence and source information.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://ask-me-mcp-xi.vercel.app/api/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

Details

From the project 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:

ToolWhat it returns
get_current_focusCurrent allocation, active engagements, and the primary vertical wedge in progress.
get_engagement_summaryA specific engagement (NXT Robotics, AIMIA, Hydrostasis, Digital QR Card) described at a public-safe level.
search_reusable_patternsKeyword search over the operator's 12+ reusable engineering-patterns catalog.
check_availabilityHow many Playbook / Retainer slots are open + earliest next-open date.
get_offer_detailsCurrent bundled offer: MCP-Server Playbook + Fractional CTO Retainer.
book_discovery_callInstructions + 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:

  1. Typed tool contract. Six JSON-schema-strict tools. Nothing free-form. The model can only invoke these, only with these arguments.
  2. Coordinator + specialists (extensible). v0 has one coordinator (the MCP server routing tool calls). v1 will add elicitation + supervisor agents inside more complex tools.
  3. Typed signal vector. Structured facts extracted from the grounding data. Not free-text.
  4. Versioned reasoning specification. The tool implementations ARE the reasoning spec — versioned in the code, not in a prompt.
  5. Rails + confidence. Every response carries confidence + sources + optional disclaimers. The model can display them.
  6. External grounding. The server queries src/grounding/data.json; the model never invents.
  7. Evaluation corpus + eval runner + certification. eval/corpus.json has expected answers; npm run eval replays 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 [email protected].

License

MIT. See LICENSE.

Attribution

Built by Ilyes Tounsi · Carlsbad, CA · tounsils.github.io.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.