mcpField
M
mcp-server-llmling

mcp-server-llmling

本地服务
github.com/phil65开发工具648 周前更新

关于 mcp-server-llmling

面向配置 LLM 应用环境的开发者,mcp-server-llmling 使用 YAML 声明资源、提示词和工具,无需编写配置代码。它支持多种内容来源、资源热重载及多种传输方式。

主要功能

  1. 01通过 YAML 声明应用组件
  2. 02管理多种类型的资源
  3. 03支持资源监视与热重载
  4. 04注册 Python 与 OpenAPI 工具
  5. 05管理静态及动态提示词
  6. 06支持 stdio、SSE 和 Streamable HTTP

适用场景

  1. 01从文件和命令输出提供上下文
  2. 02将 Python 函数配置为 LLM 工具
  3. 03为不同客户端配置提示词和资源

MCP 相关

通过 MCP 向客户端提供资源读取与变更通知、工具调用及提示词管理,并支持 stdio、SSE 和 Streamable HTTP 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"llmling": {
"command": "uvx",
"args": [
"mcp-server-llmling@latest"
]
}
}
}
启动命令uvx mcp-server-llmling@latest

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-server-llmling@latest

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-server-llmling

PyPI License Package status Monthly downloads Distribution format Wheel availability Python version Implementation Releases Github Contributors Github Discussions Github Forks Github Issues Github Issues Github Watchers Github Stars Github Repository size Github last commit Github release date Github language count Github commits this month Package status PyUp

Read the documentation!

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 协议:

  1. 资源操作

    • 列出可用资源
    • 读取资源内容
    • 监视资源变化
  2. 工具操作

    • 列出可用工具
    • 使用参数执行工具
    • 获取工具架构
  3. 提示词操作

    • 列出可用提示词
    • 获取格式化后的提示词
    • 获取提示词参数的补全建议
  4. 通知

    • 资源变化
    • 工具/提示词列表更新
    • 进度更新
    • 日志消息

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。