About Lupin
Lupin is an MCP server for tracking revenue opportunities and matching them against a capability registry. Its lane-scoped access separates Qompass and NTRanch entries, and it stores data in plain files rather than a database.
Key features
- 01Opportunity ledger and capability registry
- 02Lane-scoped access control
- 03Advisory keyword capability matching
- 04Candidate submission to scan inbox
- 05Pipeline counts and parse health
Use cases
- 01Review opportunities by status
- 02Check capability matches for a candidate
- 03Submit a candidate for scanning
- 04Inspect pipeline counts by lane
MCP support
Lupin communicates with MCP clients over stdio using NDJSON JSON-RPC. It exposes tools for listing capabilities and opportunities, matching text, submitting candidates, and viewing pipeline summaries.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMELupin
An MCP server for the Revenue Alignment Engine: an opportunity ledger
and capability registry with lane-scoped access. Opportunities live in
one of two lanes — Qompass (sfw) or NTRanch (nsfw) — and a caller
scoped to one lane can never see the other lane's entries.
Lupin is a single Rust binary. It speaks MCP over stdio (NDJSON JSON-RPC) to the client and works on plain files under a data root — no database, no network listener. It is the ledger side of the estate's revenue pipeline; the research-feed server phaedrus drafts candidates into it.
How it runs
- Data root (ledger, capability registry, scan inbox):
--root <path>or theREVENUE_ROOTenvironment variable (default~/workspace/revenue-alignment-20261019). - Lane scope:
--lane-scope operator|sfw(defaultoperator). The operator scope sees both lanes; ansfw-scoped caller can never seensfwentries. - Read-mostly by design: the only write files a candidate into the
scan inbox (
opportunity_submit). The validated ledger is never written by this server, andcapability_matchis advisory only — it never auto-aligns an opportunity.
Tools
| Tool | What it returns |
|---|---|
capability_list | The capability registry (the alignment vocabulary); lane scope enforced |
capability_match | Advisory keyword match of free text against capabilities; never auto-aligns |
opportunity_get | One ledger entry by id, including its raw block |
opportunity_list | Ledger opportunities, optionally filtered by status; lane scope enforced |
opportunity_submit | File a candidate into the scan inbox; never writes the ledger |
pipeline_summary | Counts by status/lane plus parse health — the value-demonstration view |
Client config
{
"mcpServers": {
"lupin": {
"command": "/path/to/lupin",
"args": []
}
}
}
Registry
server.json in this repo is the MCP Registry record for
ai.qompass/lupin. The server is distributed as an MCPB bundle
attached to the GitHub releases (Linux x64).
License
Apache-2.0 — see LICENSE.
Comments
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.