Skip to content
LlamaIndex 文档版本 跟随上游 源快照 8f1c9ac6 更新于 2026-10-15

把你的 LlamaIndex 工具与工作流转换成 MCP 服务端,从而获得更广泛的生态兼容性。

转换工作流

用 workflow_as_mcp 可以把任意 LlamaIndex Workflow 转换成一个 FastMCP 服务端:

from workflows import Context, Workflow, step
from workflows.events import StartEvent, StopEvent
from llama_index.tools.mcp.utils import workflow_as_mcp

class QueryEvent(StartEvent):
    query: str

class SimpleWorkflow(Workflow):
    @step
    def process_query(self, ctx: Context, ev: QueryEvent) -> StopEvent:
        result = f"Processed: {ev.query}"
        return StopEvent(result=result)

# Convert to MCP server
workflow = SimpleWorkflow()
mcp = workflow_as_mcp(workflow, start_event_model=QueryEvent)

如果你直接使用 FastMCP,写法大致是这样的:

from fastmcp import FastMCP

# Workflow definition
...

mcp = FastMCP("Demo 🚀")
workflow = SimpleWorkflow()

@mcp.tool
async def run_my_workflow(input_args: QueryEvent) -> str:
    """Add two numbers"""
    if isintance(input_args, dict):
        input_args = QueryEvent.model_validate(input_args)
    result = await workflow.run(start_event=input_args)
    return str(result)

if __name__ == "__main__":
    mcp.run()

转换单个工具

我们也可以用 FastMCP 直接把现有的函数与工具转换成 MCP 端点:

from fastmcp import FastMCP
from llama_index.tools.notion import NotionToolSpec

# Get tools from ToolSpec
tool_spec = NotionToolSpec(integration_token="your_token")
tools = tool_spec.to_tool_list()

# Create MCP server
mcp_server = FastMCP("Tool Server")

# Register tools
for tool in tools:
    mcp_server.tool(
        name=tool.metadata.name, description=tool.metadata.description
    )(tool.real_fn)

运行 MCP 服务端

你可以从命令行启动你的服务端(这对调试也很方便!):

终端窗口

# Install MCP CLI
pip install "mcp[cli]"

# Run server
mcp run your-server.py

BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。