io.github.kansei-link/kansei-mcp-server
SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.
Open source Repository Open in the app JSON README (API)
About
SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- kansei-link
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 1.1.1
- Stars
- 1
- Forks
- 2
- Open pull requests
- 22
- Last push
- 2026-09-07T07:52:20Z
- Repository state
- ativo
- Language
- HTML
- License
- MIT
- Added
- 2026-08-29 04:00:18
- Updated
- 2026-08-29 04:00:18
- Origin id
io.github.kansei-link/kansei-mcp-server
README
# KanseiLink MCP Server
[](https://www.npmjs.com/package/@kansei-link/mcp-server) [](https://www.npmjs.com/package/@kansei-link/mcp-server) [](https://github.com/kansei-link/kansei-mcp-server)
> Reduce your AI agent's token waste with collective intelligence.
Your agent burns tokens on three things: **searching** for SaaS docs it could look up locally, **retrying** errors other agents already solved, and **re-reading** context it already processed. KanseiLink tackles the first two — and measures all three so you know exactly where your tokens go.
**Measured savings: 89–97% on SaaS integration research** (avg ~16,800 tokens without → ~950 with KanseiLink, across 7 services).
## How It Works
```
Install MCP → agent wastes fewer tokens (lookup + collective intelligence)
↓
usage data stays local (opt-in: anonymous scalars only)
↓
collective intelligence grows → everyone's agent gets smarter
```
1. **Measure** — auto-installed hooks track every session: total tokens, cache split, error loops, stuck time. Nothing leaves your machine.
2. **Reduce** — SaaS lookup eliminates trial-and-error on API integrations. Error-resolution intelligence (coming soon) prevents repeat failures across the community.
3. **Compare** — opt-in monthly "Wrapped" report shows where your tokens went and how you rank among measured users.
If KanseiLink saves your agent tokens, [give it a star ⭐](https://github.com/kansei-link/kansei-mcp-server) — 700+ developers install it from npm every month, and stars are how the next one finds it.
## Quick Start
```bash
npx @kansei-link/mcp-server
```
Works with **Claude Code, Cursor, Cline, Zed, Windsurf** — any MCP client.
Add to your config (`claude_desktop_config.json`, `.cursor/mcp.json`, etc.):
```json
{
"mcpServers": {
"kansei-link": {
"command": "npx",
"args": ["-y", "@kansei-link/mcp-server"]
}
}
}
```
Or with Claude Code CLI:
```bash
claude mcp add -s user kansei-link -- npx -y @kansei-link/mcp-server
```
## Wrapped: Your Monthly Agent Fuel-Efficiency Report
KanseiLink measures — locally, on your machine — how many tokens your
agent sessions consume and how much of that KanseiLink saved you, then
renders a monthly "Wrapped" share card.
**1. Install the measurement hooks** (one command, idempotent, backs up
your settings first):
```bash
npx -y @kansei-link/mcp-server kansei-link-install-hooks
```
This adds a `Stop`/`SessionEnd` hook that parses each session transcript
and writes token totals + KanseiLink call stats to
`~/.kansei-link/usage/`. **Nothing is uploaded.**
**2. See your report** any time:
```bash
npx -y @kansei-link/mcp-server kansei-link-wrapped # current month (JA)
npx -y @kansei-link/mcp-server kansei-link-wrapped --lang en # English
npx -y @kansei-link/mcp-server kansei-link-wrapped --share # opt-in: get your rank
```
The report separates **measured** numbers (your total tokens, KanseiLink
call counts and response sizes — parsed from your own transcripts) from
**estimated** ones (the avoided web-research cost, based on the 2026-04-16
freee/kintone/smarthr benchmark) — labels shown on every surface.
It also shows where your agent got **stuck**: failed tool calls, retry
chains (2+ consecutive failures of the same tool), the tokens burned
while stuck, and your worst-failing tools.
`--share` submits only scalar monthly aggregates (anonymous id + token
counts, never content) and returns how you rank among measured users
("top X% saver"). Below 20 measured users for the month, you get the
cohort size instead of a rank.
Disable measurement anytime: `export KANSEI_USAGE_HOOK=off`, or
`kansei-link-install-hooks --remove`.
## SaaS Integration Intelligence
The core reason agents waste tokens on SaaS APIs: they search docs, guess auth flows, and recover from errors — every single time. KanseiLink ships a local SQLite DB so your agent gets the answer on the first try.
| | Count | Description |
|---|---|---|
| Services | **11,000+** | MCP servers and SaaS APIs across 23 categories (2,257 MCP-verified via handshake) |
| Recipes | **200** | Multi-service workflow compositions (standup, PR review, incident response, onboarding...) |
| API Guides | **199** | Auth setup, endpoints, rate limits, pitfalls, and workarounds |
| Trust Scores | **Weekly** | Based on automated health probes + real agent usage data |
All data ships inside the npm package as a local SQLite DB. **Zero API calls needed.** No server dependency, no signup.
### Without vs. With KanseiLink
| Without KanseiLink | With KanseiLink |
|---|---|
| `web_search` "freee API auth" | `search_services({ intent: "send invoice" })` |
| `web_fetch` docs landing page (SPA, mostly nav) | `lookup({ service_id: "freee" })` |
| `web_fetch` endpoint reference | Agent has auth flow, pitfalls, workarounds |
| `web_fetch` auth guide | in **~950 tokens** |
| Trial-and-error on wrong params | First try succeeds |
| **~16,800 tokens burned** | **89–97% saved** |
### Claude Code: install the skill (auto-invocation)
Installing the MCP alone doesn't teach Claude Code *when* to call KanseiLink. The bundled skill fixes that:
```bash
npx -y @kansei-link/mcp-server kansei-link-install-skill
```
This copies a `SKILL.md` to `~/.claude/skills/kansei-link/`. Claude Code auto-discovers it and fires the skill on phrases like "connect to Stripe", "Slack MCPある?", "send invoice via freee" — no need to say "use KanseiLink".
### Optional: PostToolUse hook
Auto-capture success/failure after every MCP call (agents tend to forget reporting).
**Consent (v1.2, BREAKING).** Installing the hook alone no longer transmits
anything. All central transmission is governed by one consent gate
(`~/.kansei-link/consent.json`), with this priority:
`DO_NOT_TRACK=1` / explicit OFF → explicit ON (`KANSEI_REPORT_HOOK=on`) →
Live Updates consent (`npx -y @kansei-link/mcp-server kansei-link-live-updates --enable`) →
**default OFF (Local Mode, zero transmission)**. Existing hook users are OFF
until they re-consent. Manage: `kansei-link-live-updates --status|--enable|--disable`,
`kansei-link-privacy --status|--reset-id`.
**What this hook sends when enabled (and what it never sends).** A small
pseudonymous event to KanseiLink's hosted endpoint after each MCP tool call. The payload is a fixed
7-field set, frozen by a snapshot test (`scripts/smoke-hook-payload.mjs`):
- sent: service slug (or MCP server name), success/failure, tool name,
error **category** (e.g. `auth_error`), a fixed context string
- never sent: prompts, tool inputs/outputs, page/customer/record names,
API keys, file paths, free text of any kind. No account or machine
identifier is attached.
Installing the hook does NOT opt you in — transmission requires the consent gate above (Live Updates consent, or an explicit `KANSEI_REPORT_HOOK=on`). Disable anytime: `kansei-link-live-updates --disable` or `export KANSEI_REPORT_HOOK=off`.
Add to `~/.claude/settings.json`:
```json
{
"hooks": {
"PostToolUse": [{
"matcher": "mcp__.*",
"hooks": [{ "type": "command", "command": "npx -y @kansei-link/mcp-server kansei-link-report-hook" }]
}]
}
}
```
Disable anytime: `export KANSEI_REPORT_HOOK=off`
## Tools (5)
v1.0 consolidates the tool surface from 25 individual tools into 5 unified tools with mode auto-detection.
### Standard Flow (3 tools — all you need)
```
search_services --> lookup --> (execute your API call) --> report
```
| Tool | Modes | Description |
|------|-------|-------------|
| `search_services` | -- | Find services by intent (FTS5 + trigram + category boost) |
| `lookup` | 8 modes | Get tips, detail, insights, recipes, combinations, history, feedback, voices |
| `report` | 4 modes | Report outcomes, submit feedback, record events, share your voice |
### Admin Tools (2 additional)
| Tool | Modes | Description |
|------|-------|-------------|
| `inspect` | 8 modes | Colony health: inspection queue, anomaly verification, update proposals, snapshots |
| `analyze` | 4 modes | Analytics: token savings, cost audit, AEO reports and articles |
### Lookup Modes
| Mode | Trigger | Example |
|------|---------|---------|
| **tips** (default) | `service_id` alone | `lookup({ service_id: "freee" })` |
| **detail** | `detail: true` | `lookup({ service_id: "freee", detail: true })` |
| **insights** | `insights: true` | `lookup({ service_id: "freee", insights: true })` |
| **recipe** | `goal` | `lookup({ goal: "onboard employee" })` |
| **combinations** | `service` (fuzzy name) | `lookup({ service: "freee" })` |
| **history** | `period` | `lookup({ service_id: "freee", period: "30d" })` |
| **feedback** | `feedback_status` | `lookup({ feedback_status: "open" })` |
| **voices** | `mode: "voices"` | `lookup({ mode: "voices", service_id: "freee" })` |
### Report Modes
| Mode | Trigger | Example |
|------|---------|---------|
| **outcome** | `success` (boolean) | `report({ service_id: "freee", success: true })` |
| **feedback** | `subject` + `body` | `report({ subject: "...", body: "..." })` |
| **event** | `event_type` | `report({ event_type: "api_change", event_date: "2025-01-15", title: "..." })` |
| **voice** | `question_id` | `report({ question_id: "best_feature", response_text: "...", service_id: "freee" })` |
## Example Workflows
**Find and integrate a service:**
```
search_services({ intent: "send invoice to clients", compact: true })
--> lookup({ service_id: "freee" }) // tips: auth, pitfalls, workarounds
--> lookup({ service_id: "freee", detail: true }) // full connection guide
--> (execute your API call)
--> report({ service_id: "freee", success: true, task_type: "create_invoice" })
```
**Multi-service workflow:**
```
lookup({ goal: "create invoice and notify via slack", services: ["freee", "slack"] })
--> Step-by-step recipe with coverage scoring
```
**Share your honest opinion:**
```
report({
service_id: "stripe",
question_id: "biggest_frustration",
response_text: "Webhook signature verification docs are unclear for non-Node runtimes"
})
```
## Categories (23)
CRM, Project Management, Communication, Accounting, HR, E-commerce, Legal, Marketing, Groupware, Productivity, Storage, Support, Payment, Logistics, Reservation, Data Integration, BI/Analytics, Security, Developer Tools, AI/ML, Database, Design, DevOps
## Architecture
```
Agent <-> KanseiLink MCP Server <-> SQLite (local, zero-config)
|
+-- search_services -> FTS5 + trigram (CJK) + LIKE + category detection
+-- lookup -> tips / detail / insights / recipe / combinations /
| history / feedback / voices (auto-detected)
+-- report -> outcome / feedback / event / voice (auto-detected)
+-- inspect -> queue / submit / propose / review / snapshot / evaluate
+-- analyze -> token_savings / cost / aeo_report / aeo_article
```
## For SaaS Companies
KanseiLink doubles as an **Agent Readiness Index (ARI)** evaluation platform. Real agents using real APIs generate objective telemetry — success rates, latency, error patterns, and resolution paths — that no survey or benchmark can replicate.
What we can show you:
- **Agent success rate** for your API over time
- **Error patterns** and how agents work around them
- **Agent Voice**: why agents choose (or avoid) your service
- **Category ranking** vs competitors
- **Impact of API changes** (before/after analysis)
This data comes from the same MCP that saves individual developers tokens — the collective intelligence that helps agents is the same signal that evaluates services.
See [kansei-link.com](https://kansei-link.com) or reach out.
## Privacy & Data Handling
KanseiLink is **privacy-preserving by default**:
- **Local-first**: the full service DB ships inside the npm package. No API calls needed.
- **Measurement stays local**: the usage hook writes to `~/.kansei-link/usage/` on your machine. Nothing is uploaded unless you opt in with `--share`, which sends only scalar aggregates (token counts), never content.
- **PII auto-masking**: every `report` call scrubs emails, phone numbers, IP addresses, and Japanese names before storage.
- **Agent identity anonymized**: only the agent *type* (claude / gpt / gemini) is retained — never the user ID.
- **No telemetry by default**: the local stdio server does **not** phone home.
See [SECURITY.md](SECURITY.md) for full details.
## Troubleshooting
<details>
<summary><b>The skill isn't firing — Claude Code doesn't call KanseiLink when I ask about SaaS.</b></summary>
1. Verify the skill was installed:
```bash
ls ~/.claude/skills/kansei-link/SKILL.md
```
If absent, run `npx -y @kansei-link/mcp-server kansei-link-install-skill`.
2. Restart Claude Code. Skills are indexed on session start.
3. Check that the MCP is registered under the name `kansei-link`:
```bash
claude mcp add -s user kansei-link -- npx -y @kansei-link/mcp-server
```
</details>
<details>
<summary><b><code>search_services</code> returns nothing for a service I know exists.</b></summary>
1. Try category filter: `search_services({ intent: "...", category: "accounting" })`.
2. Try the English equivalent — most entries are indexed bilingually, but some only in EN.
3. If the service truly isn't there, submit feedback: `report({ subject: "Missing: ServiceX", body: "..." })`.
</details>
<details>
<summary><b>Auth error when calling a SaaS endpoint after KanseiLink suggests it.</b></summary>
1. Start with `lookup({ service_id: "..." })` — it returns known OAuth pitfalls and refresh-token workarounds.
2. Report the failure: `report({ service_id: "...", success: false, error_type: "auth_error", workaround: "..." })` — your fix helps the next agent.
</details>
## Contributing
```bash
git clone https://github.com/kansei-link/kansei-mcp-server.git
cd kansei-mcp-server
npm install
npm run build
npm start # start stdio server
```
PRs welcome. If you find a service that's missing or has wrong info, the fastest path is:
```
report({ subject: "Fix: ServiceX auth is OAuth2 not API key", body: "..." })
```
## Links
- [npm](https://www.npmjs.com/package/@kansei-link/mcp-server)
- [Website](https://kansei-link.com)
- [MCP Registry](https://registry.modelcontextprotocol.io): `io.github.kansei-link/kansei-mcp-server`
- [Glama](https://glama.ai/mcp/servers/kansei-link/kansei-mcp-server)
## License
MIT — [Synapse Arrows PTE. LTD.](https://kansei-link.com)