模型上下文协议服务器

Lakehouse42的模型上下文协议(MCP)服务器,提供按需工具发现、工具标记、游标分页等功能,适用于代码优先的开发模式。

  • by lakehouse-42
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 lakehouse-42/mcp-server

使用说明

@lakehouse/mcp服务器

模型上下文协议(MCP) Lakehouse42的服务器。

特性

  • 代码优先模式 -按需工具发现(约98%的令牌减少)
  • 工具标记 -按类别筛选工具(读/写/管理/搜索/时间旅行)
  • 光标分页 -高效浏览大型结果集
  • 流式HTTP -具有会话恢复功能的可扩展部署
  • 优化响应 -压缩JSON、截断片段、示例行

快速开始

LAKEHOUSE42_API_KEY=lh_xxx npx @lakehouse/mcp-server

克劳德桌面版

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "lakehouse42": {
      "command": "npx",
      "args": ["@lakehouse/mcp-server"],
      "env": {
        "LAKEHOUSE42_API_KEY": "lh_your_api_key"
      }
    }
  }
}

环境变量

变量 必需 默认值
LAKEHOUSE42_API_KEY 是 -
LAKEHOUSE42_BASE_URL 没有 https://api.lakehouse42.com

工具

搜索工具

按需发现工具(代码优先模式)。

{ "tags": ["search"], "detail": "summary" }
参数 类型 说明
query string 搜索词
tags string[] read, write, admin, search, time-travel
detail 字符串 name (10个令牌), summary (50), full (150)

搜索

带有光标分页的混合搜索。

{ "query": "revenue report", "top_k": 10 }

返回:最多5个结果,200个字符片段, next_cursor 用于分页。

ask_问题

RAG供电问答。

{ "question": "What is our refund policy?" }

返回:答案+源计数。

get_document/list_documents/list_collections

具有光标分页的文档和收藏管理。

upload_document

上传文本文档(自动分块和索引)。

time_travel_query/time_travel-div/list_snapshots

冰山时间旅行查询。返回行数+3个样本行。

HTTP传输

对于web部署:

import { HttpTransport, ToolExecutor, ApiClient } from '@lakehouse/mcp-server';

const client = new ApiClient({ apiKey: 'lh_xxx', baseUrl: 'https://api.lakehouse42.com' });
const transport = new HttpTransport({ toolExecutor: new ToolExecutor(client) });

http.createServer((req, res) => transport.handleRequest(req, res)).listen(3000);

特征:

  • 会话管理(Mcp-Session-Id 头球
  • SSE流媒体(Accept: text/event-stream)
  • 断开恢复连接(Last-Event-ID)

终点:

  • POST /mcp -JSON-RPC请求
  • GET /mcp -SSE流
  • DELETE /mcp -结束会话
  • GET /health -健康检查

编程式用法

import { createServer, searchTools, TAGGED_TOOLS } from '@lakehouse/mcp-server';

// Stdio server
const server = createServer({ apiKey: 'lh_xxx' });
await server.start();

// Tool discovery
const readTools = searchTools(undefined, ['read'], 'name');
// → [{ name: 'search' }, { name: 'ask_question' }, ...]

响应优化

工具 优化
搜索 5个结果,200个字符片段
list_documents 10个文档,基本字段
time_travel_query 3个样本行+计数

所有响应都使用紧凑的JSON(没有漂亮的打印)。

许可证

麻省理工学院