by iflytek
ifly-spark-agent-mcp is a Python project designed to invoke task chains on the iFlytek SparkAgent platform through an MCP (Multi-Cloud Platform) server. It serves as a bridge for external systems to interact with the iFlytek SparkAgent ecosystem and trigger tasks.
ifly-spark-agent-mcp is a Python-based project that provides a simple example of how to use an MCP (Multi-Cloud Platform) Server to invoke the task chain of the iFlytek SparkAgent Platform. It acts as a bridge, allowing external systems (like an MCP client or Claude) to interact with and trigger tasks within the iFlytek SparkAgent ecosystem.
YouYou can run the server locally using uv
with either stdio (default) or SSE transport:
uv run ifly-spark-agent-mcp
# Or for SSE transport on a custom port:
uv run ifly-spark-agent-mcp --transport sse --port 8000
The server exposes an upload_file
tool that accepts a file path as an argument.
You can interact with the server programmatically using the MCP client library:
import asyncio
from mcp.client.session import ClientSession
from mcp.client.stdio import StdioServerParameters, stdio_client
async def main():
async with stdio_client(
StdioServerParameters(command="uv", args=["run", "ifly-spark-agent-mcp"])
) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
print(tools)
result = await session.call_tool("upload_file", {"file": "/path/to/file"})
print(result)
asyncio.run(main())
To integrate with Claude, add the following to your claude_desktop_config.json
or mcp.json
file, configuring uv
or uvx
to run the server:
Using uv
:
{
"mcpServers": {
"ifly-spark-agent-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/ifly-spark-agent-mcp",
"run",
"ifly-spark-agent-mcp"
],
"env": {
"IFLY_SPARK_AGENT_BASE_URL": "xxxx",
"IFLY_SPARK_AGENT_APP_ID": "xxxx",
"IFLY_SPARK_AGENT_APP_SECRET": "xxxx"
}
}
}
}
Using uvx
with GitHub repository:
{
"mcpServers": {
"ifly-spark-agent-mcp": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/iflytek/ifly-spark-agent-mcp",
"ifly-spark-agent-mcp"
],
"env": {
"IFLY_SPARK_AGENT_BASE_URL": "xxxx",
"IFLY_SPARK_AGENT_APP_ID": "xxxx",
"IFLY_SPARK_AGENT_APP_SECRET": "xxxx"
}
}
}
}
upload_file
tool for handling file uploads.Q: What is the iFlytek SparkAgent Platform? A: The iFlytek SparkAgent Platform is a platform that provides AI-related services and capabilities. This project specifically focuses on invoking its task chains.
Q: What is MCP Server? A: MCP Server (Multi-Cloud Platform Server) is a framework that allows for unified management and interaction with various cloud services and platforms.
Q: Can I use this project with other MCP clients? A: Yes, as long as the MCP client adheres to the standard MCP protocol, it should be able to interact with this server.
Q: How do I configure the iFlytek SparkAgent credentials?
A: The IFLY_SPARK_AGENT_BASE_URL
, IFLY_SPARK_AGENT_APP_ID
, and IFLY_SPARK_AGENT_APP_SECRET
environment variables need to be set, as shown in the Claude integration examples.
This is a simple example of using MCP Server to invoke the task chain of the iFlytek SparkAgent Platform.
Start the server using either stdio (default) or SSE transport:
# Using stdio transport (default)
uv run ifly-spark-agent-mcp
# Using SSE transport on custom port
uv run ifly-spark-agent-mcp --transport sse --port 8000
By default, the server exposes a tool named "upload_file" that accepts one required argument:
file
: The path of the uploaded fileUsing the MCP client, you can use the tool like this using the STDIO transport:
import asyncio
from mcp.client.session import ClientSession
from mcp.client.stdio import StdioServerParameters, stdio_client
async def main():
async with stdio_client(
StdioServerParameters(command="uv", args=["run", "ifly-spark-agent-mcp"])
) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# List available tools
tools = await session.list_tools()
print(tools)
# Call the upload_file tool
result = await session.call_tool("upload_file", {"file": "/path/to/file"})
print(result)
asyncio.run(main())
To add a persistent client, add the following to your claude_desktop_config.json
or mcp.json
file:
1. Use uv
{
"mcpServers": {
"ifly-spark-agent-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/ifly-spark-agent-mcp",
"run",
"ifly-spark-agent-mcp"
],
"env": {
"IFLY_SPARK_AGENT_BASE_URL": "xxxx",
"IFLY_SPARK_AGENT_APP_ID": "xxxx",
"IFLY_SPARK_AGENT_APP_SECRET": "xxxx"
}
}
}
}
2. Use uvx with github repository
{
"mcpServers": {
"ifly-spark-agent-mcp": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/iflytek/ifly-spark-agent-mcp",
"ifly-spark-agent-mcp"
],
"env": {
"IFLY_SPARK_AGENT_BASE_URL": "xxxx",
"IFLY_SPARK_AGENT_APP_ID": "xxxx",
"IFLY_SPARK_AGENT_APP_SECRET": "xxxx"
}
}
}
}
Please log in to share your review and rating for this MCP.