Skip to main content
Glama
meekch

vedette-evidence-mcp

by meekch
README.md
# vedette-evidence-mcp

A small MCP (Model Context Protocol) server, built to close a specific,
honest gap: hands-on experience authoring an MCP server with real tools.

## What it is

A working MCP server exposing three tools over stdio:

- **search_evidence** — keyword search over a seeded set of evidence chunks,
  each traceable to a named source document.
- **list_opportunities** — lists opportunities, each linked to the evidence
  chunk IDs that support it.
- **compute_roi** — deterministic ROI math (hours saved, adoption ramp,
  annual dollars saved). The model may propose the inputs; every dollar
  figure is computed in plain TypeScript, never generated by a model. This
  mirrors the same model/computation separation used in Vedette.

## What it is honestly

This is a demo project with seeded, fictional data (`src/data.ts`), built to
learn and demonstrate the MCP authoring pattern: defining tools with Zod
schemas, running a stdio transport, and having a client actually call them.
It is not connected to a live database or a real Finance system.

Verified end to end: `test-client.mjs` connects a real MCP client to the
built server, lists the tools, and calls all three — output captured in
git history / can be re-run any time with `node test-client.mjs`.

## Honest resume line

"Built and tested an MCP server exposing evidence search, opportunity
listing, and deterministic ROI computation as callable tools, verified
end-to-end with a real MCP client."

Do not claim: connection to a live production system, multi-agent
orchestration (this is tool-calling by a single client, not multiple
agents), or use by real users. This is a learning/demo artifact, described
as exactly that.

## Running it yourself

```bash
npm install
npx tsc
node test-client.mjs
```

## Next step, if you want to extend it

Swap `src/data.ts` for a real Supabase query against Vedette's existing
schema (evidence chunks and opportunities tables already exist there) —
that would upgrade this from a demo to a real integration, and would be an
honest next resume line at that point, not before.