Skip to main content
Glama
Lili-ann

Internship Tracker MCP Server

by Lili-ann
README.md
# Internship tracker MCP server

A small backend that exposes your Supabase `applications` table as MCP tools,
so Claude can add, list, update, and delete entries directly in conversation.

## Files

- `db.js` — the only file that talks to Supabase directly
- `tools.js` — the four tool definitions (add / list / update / delete), each with
  a schema (what input is valid) and a handler (what it does to the database)
- `server.js` — the HTTP server that speaks the MCP protocol and wires the
  tools together; this is what Claude actually connects to
- `.env.example` — copy to `.env` and fill in your real Supabase + API key values

## Run it locally first

```bash
npm install
cp .env.example .env
# edit .env with your real Supabase URL, service key, and a made-up API key
npm run dev
```

Visit `http://localhost:3000` in a browser — you should see
"Internship tracker MCP server is running." That confirms the server itself
is up, before you worry about MCP or Claude at all.

## Deploy it somewhere public

Claude's custom connectors are reached from Anthropic's cloud, not your
laptop, so `localhost` will not work once you're ready to connect it to
Claude. Options: Render, Fly.io, Railway.

General steps for any of them:
1. Push this folder to a GitHub repo
2. Connect that repo to your chosen host
3. Set the same environment variables from `.env` in the host's dashboard
   (never commit the real `.env` file)
4. Deploy — you'll get a public URL like `https://internship-tracker.onrender.com`
5. Your MCP endpoint is that URL + `/mcp`, e.g.
   `https://internship-tracker.onrender.com/mcp`

## Add it to Claude

In Claude settings → Connectors → Add custom connector, paste the `/mcp`
URL and configure the header `x-api-key` with the same value you set as
`CONNECTOR_API_KEY`.

## Next steps

- Test each tool individually once connected: "add a test application",
  "list my applications", "update it to interview stage", "delete it"
- Once the plain tools work, the visual departures-board UI can be added
  as an MCP App resource on top of `list_applications` — a follow-up step,
  not required for the core tracker to work