关于 mcp-server-llmling
面向配置 LLM 应用环境的开发者,mcp-server-llmling 使用 YAML 声明资源、提示词和工具,无需编写配置代码。它支持多种内容来源、资源热重载及多种传输方式。
主要功能
- 01通过 YAML 声明应用组件
- 02管理多种类型的资源
- 03支持资源监视与热重载
- 04注册 Python 与 OpenAPI 工具
- 05管理静态及动态提示词
- 06支持 stdio、SSE 和 Streamable HTTP
适用场景
- 01从文件和命令输出提供上下文
- 02将 Python 函数配置为 LLM 工具
- 03为不同客户端配置提示词和资源
MCP 相关
通过 MCP 向客户端提供资源读取与变更通知、工具调用及提示词管理,并支持 stdio、SSE 和 Streamable HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-server-llmling
LLMling Server Manual
概述
mcp-server-llmling 是一个 Machine Chat Protocol(MCP)服务,为 LLM 应用提供基于 YAML 的配置系统。
后端 LLMLing 为 LLM 应用提供基于 YAML 的配置系统。 它支持设置自定义 MCP 服务,以提供 YAML 文件中定义的内容。
- 静态声明:在 YAML 中定义 LLM 的环境,无需编写代码
- MCP 协议:基于 Machine Chat Protocol(MCP)构建,实现标准化的 LLM 交互
- 组件类型:
- 资源:内容提供方(文件、文本、CLI 输出等)
- 提示词:带参数的消息模板
- 工具:LLM 可调用的 Python 函数
YAML 配置会创建一个完整的环境,为 LLM 提供:
- 通过资源访问内容
- 用于实现一致交互的结构化提示词
- 用于扩展能力的工具
主要功能
1. 资源管理
- 加载和管理不同类型的资源:
- 文本文件(
PathResource) - 原始文本内容(
TextResource) - CLI 命令输出(
CLIResource) - Python 源代码(
SourceResource) - Python 可调用对象的结果(
CallableResource) - 图像(
ImageResource)
- 文本文件(
- 支持资源监视/热重载
- 资源处理流水线
- 基于 URI 的资源访问
2. 工具系统
- 将 Python 函数注册为 LLM 工具并执行
- 支持基于 OpenAPI 的工具
- 基于入口点发现工具
- 工具验证和参数检查
- 结构化工具响应
3. 提示词管理
- 支持模板的静态提示词
- 来自 Python 函数的动态提示词
- 基于文件的提示词
- 提示词参数验证
- 提示词参数的补全建议
4. 多种传输选项
- 基于 Stdio 的通信(默认)
- 面向 Web 客户端的 Server-Sent Events(SSE)/ Streamable HTTP
- 支持自定义传输实现
用法
配合 Zed Editor 使用
在 settings.json 中将 LLMLing 添加为上下文服务:
{
"context_servers": {
"llmling": {
"command": {
"env": {},
"label": "llmling",
"path": "uvx",
"args": [
"mcp-server-llmling",
"start",
"path/to/your/config.yml"
]
},
"settings": {}
}
}
}
配合 Claude Desktop 使用
在 claude_desktop_config.json 中配置 LLMLing:
{
"mcpServers": {
"llmling": {
"command": "uvx",
"args": [
"mcp-server-llmling",
"start",
"path/to/your/config.yml"
],
"env": {}
}
}
}
手动启动服务
直接从命令行启动服务:
# Latest version
uvx mcp-server-llmling@latest
1. 以编程方式使用
from llmling import RuntimeConfig
from mcp_server_llmling import LLMLingServer
async def main() -> None:
async with RuntimeConfig.open(config) as runtime:
server = LLMLingServer(runtime, enable_injection=True)
await server.start()
asyncio.run(main())
2. 使用自定义传输
from llmling import RuntimeConfig
from mcp_server_llmling import LLMLingServer
async def main() -> None:
async with RuntimeConfig.open(config) as runtime:
server = LLMLingServer(
config,
transport="sse",
transport_options={
"host": "localhost",
"port": 3001,
"cors_origins": ["http://localhost:3000"]
}
)
await server.start()
asyncio.run(main())
3. 资源配置
resources:
python_code:
type: path
path: "./src/**/*.py"
watch:
enabled: true
patterns:
- "*.py"
- "!**/__pycache__/**"
api_docs:
type: text
content: |
API Documentation
================
...
4. 工具配置
tools:
analyze_code:
import_path: "mymodule.tools.analyze_code"
description: "Analyze Python code structure"
toolsets:
api:
type: openapi
spec: "https://api.example.com/openapi.json"
提示
对于 OpenAPI 架构,你可以安装 Redocly CLI,在将 OpenAPI 规范用于 LLMLing 之前对其进行打包和解析。这有助于确保架构引用得到正确解析,且规范格式正确。如果已安装 redocly,系统会自动使用它。
服务配置
服务通过 YAML 文件进行配置,包含以下部分:
global_settings:
timeout: 30
max_retries: 3
log_level: "INFO"
requirements: []
pip_index_url: null
extra_paths: []
resources:
# Resource definitions...
tools:
# Tool definitions...
toolsets:
# Toolset definitions...
prompts:
# Prompt definitions...
MCP 协议
该服务实现了支持以下功能的 MCP 协议:
-
资源操作
- 列出可用资源
- 读取资源内容
- 监视资源变化
-
工具操作
- 列出可用工具
- 使用参数执行工具
- 获取工具架构
-
提示词操作
- 列出可用提示词
- 获取格式化后的提示词
- 获取提示词参数的补全建议
-
通知
- 资源变化
- 工具/提示词列表更新
- 进度更新
- 日志消息
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。