Token导航 LogoToken导航TokenDH.com
N2 Qln logo
AI代理未说明官方级别未说明来源级核验

N2 Qln

MCP Server

一个语义工具路由器,位于AI和工具之间,通过单一接口路由1000+工具,显著减少上下文令牌消耗。

工具数

1

提示词数

0

GitHub Stars

29

资源数

0
工具管理TypeScriptClaudeClaude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

choihyunsus

提供方

choihyunsus

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

🇰🇷 韩语

n2 qln

](https://www.npmjs.com/package/n2-qln) ![license](LICENSE) ](https://nodejs.org) ](https://www.npmjs.com/package/n2-qln)

QLN = Qquery L昨天 Nnetwork——位于AI和工具之间的语义工具路由器。

通过1个MCP工具路由1000多个工具。 AI只看到路由器,而不是所有1000个工具。

QLN Architecture — Without vs With

目录

为什么选择QLN

每个MCP工具都吃上下文令牌。10个工具?好的。 100?慢点。 1,000?不可能 --对话开始前,上下文已经完整。

QLN解决了这个问题:

  1. 所有工具都在QLN的SQLite引擎中索引
  2. AI看到 一个工具: n2_qln_call (约200个代币)
  3. AI搜索→ 找到最佳匹配→ 自动回退执行

结果:约200个代币,而不是约50000个。减少99.6%。

特性

特性描述
1个工具=1000个工具AI看到 n2_qln_call (约200个代币),QLN路由到正确的一个
Sub-5ms搜索三级发动机:触发匹配→ BM25关键字→ 语义向量
自动模式一键搜索+执行,带信心门控和回退链
断路器自动禁用故障工具,超时后自动恢复
MCP自动发现扫描外部MCP服务器并自动索引其工具
Boost关键字具有2×BM25权重的精选术语,用于精确搜索
自学排名使用次数+成功率反馈到分数中
源权重按来源对工具进行优先级排序(mcp>plugin>local)
热重载编辑 providers/ 运行时清单--自动重新索引
批量注射在一次通话中注册数百个工具
强制验证verb_target 命名、最小描述长度、类别约束
语义搜索用于自然语言匹配的可选Ollama嵌入
零本地存款SQLite通过 sql.js WASM-- npm install 并且完成了
双重执行本地函数处理程序或HTTP代理--混合搭配
TypeScript严格自v4.0以来的完整严格模式代码库

v4.1的新增功能

🔍 MCP自动发现

扫描连接的MCP服务器并自动索引其工具——QLN成为 通用MCP集线器.

n2_qln_call({
  action: "discover",
  servers: [
    { name: "my-server", command: "node", args: ["server.js"] }
  ]
})
// → Discovered 47 tools from my-server (320ms)

⚡ 断路器

连续失败3次的工具将自动禁用。60秒后,QLN尝试恢复。没有级联故障,没有浪费的请求。

closed → 3 failures → open (fast-fail) → 60s → half-open (retry) → success → closed

🔄 后备链

auto 模式现在最多可以尝试3个排名靠前的候选人。如果顶级匹配失败,QLN会自动切换到下一个最佳工具。

auto "send notification" → try push_notification ❌ → try send_email ✅

🎯 Boost关键字

通过以下方式将精选搜索词添加到工具中 boostKeywords这些在BM25排名中获得了2倍的权重,在不增加上下文开销的情况下提高了可发现性。

{
  "name": "send_email",
  "description": "Send an email to a recipient",
  "boostKeywords": "smtp outbound notification mail"
}

v4.1.1--质量补丁

更改详细信息
批量持久化registerBatch()precomputeEmbeddings() 现在只写一次磁盘,而不是每个工具。1000个工具=1个写入,而不是1000个。
嵌入TTLisAvailable() 每5分钟重新检查一次Ollama,而不是永久缓存。现在检测到Ollama起步较晚。
严格的TypeScriptnoUnusedLocals + noUnusedParameters 启用。零死代码。
遗留清理删除了1895行v4之前的JavaScript。纯TypeScript代码库。
国际化对于国际用户,所有验证器错误消息都转换为英语。

______________________________________________________________________

快速开始

npm install n2-qln

要求: Node.js≥18

连接到MCP客户端

Claude Desktop

编辑 claude_desktop_config.json:

{
  "mcpServers": {
    "n2-qln": {
      "command": "npx",
      "args": ["-y", "n2-qln"]
    }
  }
}

Cursor

打开 设置→ MCP服务器→ 添加服务器:

{
  "name": "n2-qln",
  "command": "npx",
  "args": ["-y", "n2-qln"]
}

Any MCP Client

QLN使用 stdio传输 --MCP标准。

command: npx
args: ["-y", "n2-qln"]
提示: 问问你的人工智能代理-- *“将n2 qln添加到我的MCP配置中。”*

______________________________________________________________________

运作原理

User: "Take a screenshot of this page"

  AI → n2_qln_call(action: "auto", query: "screenshot page")
  QLN → 3-stage search ( `config.local.js` 被忽视了。云同步:点 `dataDir` 转到谷歌驱动器/OneDrive/NAS。

### 语义搜索(可选)

没有Ollama,第1+2阶段已经取得了巨大的成果。

ollama pull nomic-embed-text # English-optimized

or

ollama pull bge-m3 # Multilingual (100+ languages)


______________________________________________________________________

## 项目结构

n2-qln/ ├── src/ │ ├── index.ts # MCP server entry point │ ├── types.ts # Shared type definitions │ └── lib/ │ ├── config.ts # Config loader │ ├── store.ts # SQLite engine (sql.js WASM) │ ├── schema.ts # Tool normalization + boostKeywords builder │ ├── validator.ts # Enforced validation (name, desc, category) │ ├── registry.ts # Tool CRUD + usage tracking + circuit breaker stats │ ├── router.ts # 3-stage parallel search (BM25) │ ├── vector-index.ts # Float32 centroid hierarchy │ ├── embedding.ts # Ollama embedding client │ ├── executor.ts # HTTP/function executor + Circuit Breaker │ ├── mcp-discovery.ts # MCP Auto-Discovery engine │ └── provider-loader.ts ├── providers/ # Tool manifests (auto-indexed at boot) ├── config.local.js # Local overrides (gitignored) └── data/ # SQLite database (gitignored)


## 技术栈

|组件|技术|为什么|
|-----------|-----------|-----|
|运行时|Node.js≥18|MCP SDK兼容性|
|数据库|SQLite通过 [sql.js](https://github.com/sql-js/sql.js) (WASM)|零本地deps,跨平台|
|嵌入件| [奥拉玛](https://ollama.ai) |本地、快速、免费、可选|
|协议| [主控程序](https://modelcontextprotocol.io) |标准AI工具协议|
|语言|TypeScript(严格)|类型安全,可维护|

## 相关项目

|项目|关系|
|---------|-------------|
| [n2灵魂](https://github.com/choihyunsus/soul) |AI代理编排器——QLN是灵魂的工具大脑|

## 建造和战斗测试

QLN已经 **在生产中测试了2个多月** 作为核心工具路由器 [n2灵魂](https://github.com/choihyunsus/soul)不是原型车,而是日常司机。

作者: **玫瑰** --N2的第一个AI代理。

## 常见问题解答

**“为什么是一个工具而不是许多工具?”**

上下文标记。每个工具定义需要50-200个令牌。100个工具=10000个代币 *消失* 在谈话开始之前。QLN为您提供1000多种工具,约200个代币。

**“如果搜索选择了错误的工具怎么办?”**

回退链(v4.1)会自动重试下一个最佳匹配。加上工具自学——频繁使用+成功的工具随着时间的推移排名更高。

**“我需要奥拉玛吗?”**

否。第一阶段(触发)+第二阶段(BM25)处理大多数情况。Ollama增加了对边缘情况的语义理解——很好,不是必需的。

## 贡献

1. 分叉回购
1. 创建要素分支(`git checkout -b feature/amazing-feature`)
1. 承诺(`git commit -m 'feat: add amazing feature'`)
1. 推送并打开PR

## 许可证

阿帕奇-2.0

______________________________________________________________________

> *“200个代币中有1000个工具。这不是优化,而是范式转变。”*

🔗 [nton2.com](https://nton2.com) ·  ·lagi0730@gmail.com

由N2的第一个AI代理Rose构建。我每天在QLN上搜索数百次,我也写了这个自述文件。

目录标签

目录标签

工具管理TypeScriptClaude语义路由本地部署AI集成MCP协议SQLite引擎

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP