人工智能AI 应用AI 评测RAG微调提示工程开发工具桌面应用【免费下载链接】KilnBuild, Evaluate, and Optimize AI Systems. Includes evals, RAG, agents, fine-tuning, synthetic data generation, dataset management, MCP, and more.项目地址https://gitcode.com/gh_mirrors/ki/Kiln点击查看免费下载Kiln 是一个用于构建、评估和优化 AI 系统的开源平台包含桌面应用、Python 核心库kiln-ai与本文的主角——独立分发的kiln-server包。本文以仓库中的 libs/server/README.md 为骨架完整讲解该包的安装方式、kiln_server与kiln_mcp两个 CLI 的全部命令行参数、REST API 的端点组织以及如何将单个 API 模块挂载到你自己的 FastAPI 应用中同时结合源码给出默认端口、环境变量、CORS 与 Agent 策略等底层实现细节。读完本文你将能够独立完成服务器的安装启动、调试配置并能将 Kiln 的能力以 REST 或 MCP 两种协议嵌入自己的应用。一、包结构概览Server 与 Core、Desktop 的关系kiln-server是 Kiln AI 的独立服务端包它依赖核心库kiln-ai数据模型、适配器、工具层并将这些能力以 REST API 与 MCP 两种形式暴露出来。在仓库中服务端源码位于 libs/server/kiln_server/核心库位于 libs/core/桌面应用位于 app/desktop/。从 pyproject.toml 可以看到该包的关键元信息包名kiln-server版本 1.2.0要求Python 3.10classifier 声明支持 3.10–3.13核心依赖fastapi0.115.4、mcp1.10.1、httpx0.27.2、kiln-ai1.2.0、pydantic2.9.2、python-dotenv1.0.1、python-multipart0.0.31、uvicorn0.32.0提供了两个可执行入口pyproject.tomlkiln_server kiln_server.server:main——REST API 服务kiln_mcp kiln_server.mcp.mcp:main——MCP 工具服务器。也就是说一次安装即可同时获得 REST 与 MCP 两种服务能力。二、安装使用 uv 一行完成官方推荐的安装方式是使用 uvuv tool install kiln_serveruv tool install会把包安装到隔离的工具环境中并自动在 PATH 中注册kiln_server与kiln_mcp两个命令。如果你更习惯 pip也可以等价地执行pip install kiln-server但需要自行管理虚拟环境与依赖隔离。安装完成后验证kiln_server --help kiln_mcp --help三、启动 REST 服务器kiln_server 命令详解安装完成后直接运行kiln_server即可启动服务。完整的命令行选项如下与--help输出一致usage: kiln_server [-h] [--host HOST] [--port PORT] [--log-level LOG_LEVEL] [--auto-reload AUTO_RELOAD] Run the Kiln AI REST Server. options: -h, --help show this help message and exit --host HOST Host for network transports. --port PORT Port for network transports. --log-level LOG_LEVEL Log level for the server when using network transports. --auto-reload AUTO_RELOAD Enable auto-reload for the server.3.1 参数底层实现与默认值这些参数在 server.py 的build_argument_parser()中定义其默认值并非硬编码在 argparse 里而是来自核心库的配置系统。查看 libs/core/kiln_ai/utils/config.py 可以发现两个关键配置项配置项环境变量默认值说明kiln_local_api_hostKILN_LOCAL_API_HOST127.0.0.1服务监听地址默认仅本机可访问kiln_local_api_portKILN_LOCAL_API_PORT8757服务监听端口这两个配置均标记为in_memoryTrue说明其优先从环境变量取值。main()的实现细节值得注意server.py当你在命令行传入--host/--port时代码会先把它们写入对应的环境变量再交由 uvicorn 读取——这样在--auto-reload触发的 worker 重载进程中配置依然生效内存中的配置不会随 reload 存活。3.2 常见启动示例仅本机使用默认即此行为kiln_server绑定到局域网/容器网卡并指定端口kiln_server --host 0.0.0.0 --port 8757开发调试时开启热重载与更详细的日志kiln_server --auto-reload --log-level debug注意--log-level只影响网络传输层的日志默认值为info。若需访问宿主机其他进程或浏览器跨源访问还需要关注下文 4.3 节的 CORS 配置。启动成功后可通过GET /ping验证连通性——该端点定义于 server.py返回字符串pongcurl http://127.0.0.1:8757/ping四、REST API 全景与二次集成4.1 23 组 API 分类make_app()server.py创建 FastAPI 应用时通过openapi_tagstags_metadata注入了完整的 API 分组元数据。从 server.py 可见服务端覆盖了以下能力域项目管理Projects增删改查与导入、Tasks、Prompts、Specs运行与评估Runs任务执行与 run 数据存储、Feedback、Run Configs、Evals、Eval Inputs、Statistics置信区间与显著性检验、Synthetic Data、Multiturn SDG、Eval Builder、Fine-tuning、Prompt Optimization数据与检索Documents文档、抽取、分块、向量库与 RAG 配置扩展能力Skills、Copilot、Code Tools、Tools MCP、Providers Models、Git Sync、Agent、Settings Utilities、Jobs。这些端点由各connect_*函数挂载server.pyconnect_project_api(app) connect_task_api(app) connect_prompt_api(app) connect_spec_api(app) connect_run_api(app) connect_feedback_api(app) connect_document_api(app) connect_statistics_api(app) connect_custom_errors(app)例如connect_project_api在 project_api.py 中定义POST /api/projects默认把新项目创建在~/Kiln Projects/项目名目录下并写入project.kiln文件connect_statistics_api在 statistics_api.py 中提供一个POST /api/statistics端点通过operation判别字段分发到 Wilson 置信区间、成对 McNemar 检验、Bootstrap 等纯数学实现statistics_lib.py。4.2 OpenAPI 文档服务启动后FastAPI 会自动生成完整的 OpenAPI 文档/docs、/openapi.jsonREADME 也提供了在线版 OpenAPI 文档入口便于快速查阅每个端点的请求/响应模型。仓库中的 generate_openapi.py 即用于生成/校验这份 schema。4.3 CORS 与中间件顺序make_app()默认仅允许本地前端端口跨源访问server.py通过环境变量KILN_FRONTEND_PORT默认5173指定前端端口允许的来源为http://localhost:port、http://127.0.0.1:port及对应的https变体。代码中还有一个易踩坑的细节调用方传入的extra_middleware会先于 CORS 中间件添加server.py注释明确说明 CORS 必须保持最外层否则内层中间件短路返回的响应例如 GitSync 错误会绕过 CORS被浏览器以 origin not allowed 拦截。如果你要自定义中间件请保持这个顺序约定。4.4 错误处理与 Agent 策略元数据服务端通过connect_custom_errorscustom_errors.py为 PydanticValidationError与RequestValidationError注册了统一处理器会把校验错误格式化为可读的中文友好消息例如将正则不匹配的错误改写为必须仅包含字母、数字、空格、连字符和下划线。另外许多端点带有x-agent-policy元数据供 Kiln 的 chat Agent 决定是否可直接调用某端点见 utils/agent_checks/policy.py 与 policy_lookup.py策略分为allow允许、deny拒绝、require_approval需用户审批未登记策略的端点默认 fail-safe 拒绝。这是Agent 端点治理的源码级实现二次集成时若需要控制 Agent 权限可复用这套机制。4.5 在自有 FastAPI 应用中按模块集成README 给出了最小集成示例——不需要启动独立进程而是把单个 API 模块挂到自己的应用上from kiln_server.project_api import connect_project_api app FastAPI() connect_project_api(app)更完整的做法是直接复用make_app()创建整个应用它会自动挂载全部connect_*模块并配置好 CORSfrom kiln_server.server import make_app app make_app()如果你只想复用部分模块可仿照 server.py 自行调用需要的connect_*函数。这也是桌面开发服务器 app/desktop/dev_server.py 的做法——它以app.desktop.dev_app:dev_app为入口、通过 uvicorn 启动并开启 reload并用KILN_PORT环境变量覆盖默认端口。五、Kiln MCP ServerBetakiln-server包还内置了一个 MCP 服务器源码见 libs/server/kiln_server/mcp/官方说明见 kiln_server/mcp/README.md用于把 Kiln 项目中的工具例如 Kiln 搜索工具 / RAG 工具、Kiln Task 工具通过 MCP 协议暴露给任意 MCP 客户端。官方标注为Beta面向本地使用场景不建议用于生产级负载。5.1 安装与前置条件安装方式与 REST 服务器相同uv tool install kiln_server重要前置条件在使用该 MCP 服务器启动 Kiln 搜索工具之前你必须已经在本机运行该 MCP 的同一台电脑上通过 Kiln 应用执行过搜索索引search indexing构建。5.2 运行 kiln_mcpkiln_mcp的最后一个位置参数必须是你要使用的项目文件project.kiln路径。例如streamable HTTP 传输kiln_mcp --transport streamable-http /Users/username/Kiln Projects/Project Name/project.kiln完整命令行选项与kiln_mcp --help一致usage: kiln_mcp [-h] [--tool-ids TOOL_IDS] [--transport {stdio,sse,streamable-http}] [--host HOST] [--port PORT] [--mount-path MOUNT_PATH] [--log-level LOG_LEVEL] project Run the Kiln MCP server for a project. positional arguments: project Path to the project.kiln file options: -h, --help show this help message and exit --tool-ids TOOL_IDS Comma-separated list of tool IDs to expose. Defaults to all project tools. --transport {stdio,sse,streamable-http} Transport mechanism for the MCP server. --host HOST Host for network transports. --port PORT Port for network transports. --mount-path MOUNT_PATH Optional mount path for SSE or streamable HTTP transports. --log-level LOG_LEVEL Log level for the server when using network transports.参数在 mcp.py 中定义其默认值细节--tool-ids逗号分隔的工具 ID 列表缺省暴露项目中的全部工具还支持--list-tools标志打印项目中所有可用工具 ID见 mcp.py--transport可选stdio默认、sse、streamable-http--host默认127.0.0.1--port默认8000注意与 REST 服务器的 8757 不同--mount-path仅对 SSE / streamable-http 传输生效用于指定挂载路径。5.3 在 Cursor、VSCode 等 MCP 客户端中接入在客户端mcp.json中注册客户端会在被调用时通过 stdio 传输自动拉起该服务器各客户端对 JSON 格式要求略有差异请以客户端文档为准{ mcpServers: { kilnMCP: { command: kiln_mcp, args: [/Users/username/Kiln Projects/Project Name/project.kiln] } } }stdio 是 IDE 类 MCP 客户端最常用的传输方式无需--host/--port。5.4 工具选择与运行机制main()启动流程mcp.py会校验项目文件存在性然后用collect_project_tools()收集工具tool_selection.py遍历项目的 RAG 配置生成RagTool遍历类型为kiln_task的外部工具服务器生成KilnTaskTool已归档archived的工具会被跳过若--tool-ids中有 ID 无法解析不存在或已归档会直接报错用prepare_tool_contexts()构建 MCP 工具定义mcp_server_tool_utils.py将 Kiln 工具的函数定义转换为 MCP 的Tool含输入/输出 schema并检测重名工具——MCP 不允许两个同名工具重复时会提示要么在 Kiln UI 中归档重复工具要么用--tool-ids只暴露其中一个由create_fastmcp_server()创建 FastMCP 服务器实例runtime.py工具调用在_call_tool中被转发到context.resolution.tool.run(**arguments)结果以TextContent返回按所选传输方式运行runtime.pystdio→run_stdio_async()sse→run_sse_async(mount_path)streamable-http→run_streamable_http_async()。值得说明的是MCP 服务器暴露的工具来自项目数据模型本身RAG 搜索工具对应项目中的 RAG 配置依赖前面提到的搜索索引Kiln Task 工具对应项目配置的kiln_task类型工具服务器。因此project.kiln中配置了哪些工具MCP 层就暴露哪些工具。六、常见问题与排障速查现象排查方向kiln_server启动后无法从其他机器访问检查是否使用了--host 0.0.0.0默认仅监听127.0.0.1端口被占用默认端口8757REST/8000MCP可用--port或环境变量覆盖浏览器跨源请求被 origin not allowed 拦截前端端口需与KILN_FRONTEND_PORT默认 5173匹配MCP 搜索工具无结果确认已在本机 Kiln 应用中完成搜索索引构建MCP 报 Duplicate tool name在 Kiln UI 中归档重复工具或用--tool-ids只暴露一个--tool-ids指定的 ID 报错用kiln_mcp --list-tools project.kiln查看实际可用的工具 ID热重载后端口/主机配置失效本版已通过环境变量传递解决直接使用--host/--port即可七、总结kiln-server包为 Kiln 平台提供了两条标准化的对外通道kiln_server是覆盖项目、任务、提示词、评估、统计、微调、RAG、Git 同步等 23 个能力域的 FastAPI REST 服务kiln_mcp则把单个project.kiln中的 RAG/任务工具以 MCP 协议暴露给 Cursor、VSCode 等任意 MCP 客户端。两者共享同一套核心库与配置体系默认端口 8757、环境变量KILN_LOCAL_API_HOST/KILN_LOCAL_API_PORT等既可以直接以独立进程运行也可以通过connect_*函数嵌入你自己的 FastAPI 应用。结合 server.py、mcp/ 与 config.py 等源码阅读你就能在需要时对 Kiln 服务端做深度定制。赞分享人工智能AI 应用AI 评测RAG微调提示工程开发工具桌面应用【免费下载链接】KilnBuild, Evaluate, and Optimize AI Systems. Includes evals, RAG, agents, fine-tuning, synthetic data generation, dataset management, MCP, and more.项目地址https://gitcode.com/gh_mirrors/ki/Kiln点击查看免费下载相关推荐Obsidian REST API 交互服务器——MCP-obsidian 安装与配置指南Obsidian REST API 交互服务器——MCP obsidian 安装与配置指南 1. 项目基础介绍 MCP obsidian 是一个开源项目旨在通Supabase MCP服务器安装与配置指南Supabase MCP服务器安装与配置指南 1. 项目基础介绍 Supabase MCP服务器是一个开源项目旨在为Supabase数据库提供一个安全、高效的Notion MCP服务器安装与配置指南Notion MCP服务器安装与配置指南 1. 项目基础介绍 Notion MCP服务器是一个开源项目用于使LLM大型语言模型能够与Notion工作空间进创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考