最近正在使用dify做智能体,尤其是通过工作流的方式来实现,但是发现要么是通过直接agent的方式来实现,要么就是只写方式没有进行过测试,导致在这个问题上卡了很久,所以我现在解决了,然后给大家分享一下。
先展示报错信息:
Failed to transform agent message: PluginInvokeError: {"args":{},"error_type":"ConnectionError","message":"server_name1 - MCP Server connection failed: [Errno 111] Connection refused"}
展示成功信息:
直接上mcp的服务配置
{
"add": {
"url": "http://host.docker.internal:8000/sse",
"headers": {},
"timeout": 60
}
}
由于dify部署时使用的是docker部署,但是有没有实现与本地ip的绑定,所以需要将127.0.0.1修改成http://host.docker.internal,这样就不会出现连接被拒绝的问题了。
同时附上本地python的mcp服务,使用的是sse传输协议
"""
FastMCP quickstart example.
cd to the `examples/snippets/clients` directory and run:
uv run server fastmcp_quickstart stdio
"""
from mcp.server.fastmcp import FastMCP
# Create an MCP server
mcp = FastMCP("Demo")
# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Get a personalized greeting"""
return f"Hello, {name}!"
if __name__ == "__main__":
mcp.run(transport="sse")
先运行python服务,然后在dify中运行工作流即可