Kilde Internal MCP · Teammate Guide
One connector in Claude that lets you talk to Kilde systems in plain English — Mattermost (team chat), MotherDuck (the data warehouse), GitHub (our code), Pipedrive (the CRM), and VWO (A/B experiments). Connect once, then just ask.
@kilde.sg account, and then you can ask Claude things like “show me the last messages in #general”, “how many rows are in the invoices table?”, “what PRs are open on kilde-frontend?”, “list my open Pipedrive deals”, or “what VWO experiments exist?” — and it does it for you. No installing anything on your computer.
All three tools live behind the same single connector. You only do this part once; after that, picking which tool to use is automatic — you just ask Claude in plain language.
@kilde.sg email.@kilde.sg Google account and approve.In each chat where you want to use it, turn it on with the + (tools) menu in the message box — toggle “Kilde Internal MCP” on. That’s it. Now pick the section below for what you want to do.
Read and post in Mattermost from Claude — as yourself, in plain English.
Mattermost acts as you — so it can only see your channels, and your messages are genuinely from you (not a shared bot). To do that, Claude needs a personal “key” from your Mattermost account. You set this up once.
This “Personal Access Token” (PAT) is what lets Claude act as you in Mattermost.
https://mm.kilde.sg) in a browser.Claude), and copy the token — you’ll paste it next.Treat the token like a password — don’t paste it into chats, emails, or screenshots.
You paste it once on a Kilde-internal page. It never goes through Claude or any chat.
@kilde.sg Google account (if prompted).You only do this once. If you ever create a new token, just come back and enroll the new one.
Wait ~30 seconds after enrolling, open a new chat, make sure Kilde Internal MCP is on, and try:
When you post, Claude asks you to approve first, and the message appears in Mattermost authored by you.
| You ask… | What happens |
|---|---|
| “list my channels in team” | Lists channels you belong to in that team |
| “read / show messages in #channel” | Returns recent messages (up to 100, default 20) |
| “post / send message to #channel” | Posts as you (asks for approval first) |
Name one of these teams (or a raw team ID) in your prompt:
| Team key | Team |
|---|---|
deal-origination | Deal Origination |
finance-and-ops | Finance & Ops |
kilde-internal-chateau | Kilde Internal Chateau |
marketing-and-sales | Marketing & Sales |
optimworks | Optimworks |
product-and-tech | Product & Tech |
safebay | Safebay |
For channels, use the channel’s handle/slug (lowercase, dashes), e.g. general, product-updates — not the display name “General”.
Ask questions about Kilde’s data in plain English — Claude writes and runs the query for you.
Open a chat with Kilde Internal MCP on, and ask in plain English. Claude figures out the query and runs it. Try:
No approval prompt is needed — every MotherDuck tool is read-only, so it can look but never change anything.
| You ask… | What happens |
|---|---|
| “list / show the databases” | Lists all databases available |
| “what tables are in db” | Lists tables, optionally filtered to a database/schema |
| “query / count / show me data” | Runs a read-only query (up to 1000 rows, default 100) |
The default is kilde-prod-hashed — if you don’t name a database, queries run against it.
| Database | Notes |
|---|---|
kilde-prod-hashed | Default — production data with sensitive fields hashed |
kilde-prod | Production |
kilde-nonprod | Non-production |
kilde_analytics | Analytics |
kilde_finance | Finance |
kilde_ga4 | Google Analytics 4 |
kilde_ga_control_source | GA control source |
kilde_ga_fund | GA fund |
"kilde-prod-hashed".main.my_table. Claude usually handles this for you.Browse and search Kilde’s code, and check pull requests and recent changes — all by just asking.
Open a chat with Kilde Internal MCP on, and ask in plain English. Try:
No approval prompt is needed — every GitHub tool is read-only.
| You ask… | What happens |
|---|---|
| “list the repos” | Lists the repos this connector can see, with each one’s default branch and description |
| “show me file from repo” | Reads a file’s contents (or lists a folder). You can pin a branch, tag, or commit. Large files are trimmed. |
| “search repo for term” | Searches code across the repos and returns the matching file paths |
| “what PRs are open / closed on repo” | Lists pull requests (open by default), most recently updated first |
| “recent commits on repo” | Lists recent commits on a branch |
| Repo | What it is |
|---|---|
kilde | The main backend repo |
kilde-frontend | The frontend / web app |
kilde-ai | AI / data tooling |
Ask about a repo by its name above. If you ask about a different repo, GitHub will simply return “not found” — the connector is locked to these three.
kilde, kilde-frontend, and kilde-ai.Look up deals, contacts, organizations, and activities from Claude — as yourself, in plain English.
Pipedrive acts as you, so it respects your CRM visibility — you only see what you’d see when logged in to Pipedrive yourself. There’s no shared all-seeing key. To do that, Claude needs a personal API token from your Pipedrive account. You set this up once.
Treat the token like a password — don’t paste it into chats, emails, or screenshots.
This is the same enroll page as Mattermost — it just has a separate Pipedrive box.
@kilde.sg Google account (if prompted).You only do this once. If you ever regenerate your token, come back and enroll the new one.
Wait ~30 seconds after enrolling, open a new chat, make sure Kilde Internal MCP is on, and try:
No approval prompt is needed — every Pipedrive tool is read-only.
| You ask… | What happens |
|---|---|
| “list my deals” (open / won / lost) | Lists deals you can see, newest first; can filter by status or stage |
| “get / show deal 123” | Full details of one deal by its ID |
| “search deals for term” | Full-text search across deals |
| “find the contact / person name or email” | Searches people — name, email, phone, linked org |
| “search organizations for company” | Searches companies |
| “what activities are pending / done” | Lists activities (calls, meetings, tasks) |
| “list the pipeline stages” | Shows pipelines + stages, so a deal’s stage reads as a name |
Look up Kilde’s VWO account and its experiments (tests) from Claude — just ask.
Open a chat with Kilde Internal MCP on, and ask in plain English. Try:
No approval prompt is needed — every VWO tool is read-only.
| You ask… | What happens |
|---|---|
| “VWO account info” | Account summary — name, timezone, company, industry |
| “list VWO campaigns / experiments” | Lists campaigns newest-first — status, type, created date/author |
| “get / show VWO campaign id” | Full config of one campaign — status, traffic split, variations, goals |
| Problem | Fix |
|---|---|
| “Kilde Internal MCP” isn’t in my Connectors list | The org Owner hasn’t rolled it out to you yet — ask in #product-and-tech. |
| The login window won’t let me in | You must sign in with your @kilde.sg Google account (not a personal Google account). |
| Every tool returns a generic error | Your connector session may have expired — Disconnect and Connect the connector again in Settings → Connectors. |
| Claude doesn’t seem to use the tool | Make sure Kilde Internal MCP is toggled on via the + menu in that chat, and say which system you mean (“in Mattermost…”, “in MotherDuck…”, “in GitHub…”, “in Pipedrive…”, “in VWO…”). |
| Problem | Fix |
|---|---|
| “No Mattermost token enrolled for you” | You haven’t enrolled, or it’s been <30s since you did. Enroll at https://mcp-backend.kilde.sg/enroll and retry. |
| Enroll says “Token validation failed” | The token is wrong/expired or copied incompletely. Create a fresh token and try again. |
| “Unknown team …” | Use a team key from the table above (or a raw team ID). |
| A channel isn’t found / returns nothing | Check you’re a member, and that you used the channel handle (product-updates), not the display name. |
| A 401/403 error from Mattermost | Your token was revoked or lacks permission — create and enroll a new token. |
| Problem | Fix |
|---|---|
| Claude says the query must be read-only | You asked for something that changes data. Only reads are allowed — rephrase as a question. |
| “No rows” / empty result | The query ran but matched nothing. Check the database/table name and your filters. |
| Parse error near a hyphen in a database name | Ask Claude to “quote the database name”: "kilde-prod-hashed".schema.table. |
| “Could not connect to MotherDuck” | Usually a temporary hiccup — wait a moment and retry. If it persists, flag it in #product-and-tech. |
| Problem | Fix |
|---|---|
| “GitHub is not configured” | The shared token isn’t mounted on the server — an admin needs to set it up. Flag it in #product-and-tech. |
| A repo returns “404 / not found” | It’s outside the three allowed repos (kilde, kilde-frontend, kilde-ai), or the file/path doesn’t exist on that branch. |
| Code search returns nothing | Try different terms, or scope to one repo. GitHub code search can miss very new or very large files. |
| A file looks cut off | Large files are trimmed — ask for a narrower path or a specific section. |
| Problem | Fix |
|---|---|
| “No Pipedrive token enrolled for you” | You haven’t enrolled, or it’s been <30s since you did. Enroll the Pipedrive box at https://mcp-backend.kilde.sg/enroll and retry. |
| Enroll says “Token validation failed” | The token is wrong/incomplete. Re-copy it from Pipedrive → Settings → Personal preferences → API and try again. |
| A deal/contact you expect isn’t there | The tools only see what your Pipedrive account can — check your visibility/permissions in Pipedrive. |
| A 401/403 error from Pipedrive | Your token was regenerated or lacks access — get a fresh token and enroll it again. |
| Problem | Fix |
|---|---|
| “Too many requests” / 429 | VWO rate-limits bursts. Wait a few seconds and ask again — no setup needed. |
| I want conversion / uplift numbers | Not available through the connector yet — it covers account & campaign config only. Use the VWO dashboard for results. |
| “VWO is not configured” | The shared token isn’t mounted on the server — an admin needs to set it up. Flag it in #product-and-tech. |
Still stuck? Ask in #product-and-tech.