About ifly-spark-agent-mcp
ifly-spark-agent-mcp is an example MCP server for invoking task chains on the iFlytek SparkAgent Platform. It includes an `upload_file` tool that takes a file path and can run over stdio or SSE.
Key features
- 01Invoke iFlytek SparkAgent task chains
- 02Upload a file by path
- 03Run with stdio transport
- 04Run with SSE transport
Use cases
- 01Pass a local file to the platform task chain
- 02Connect an MCP client to SparkAgent through stdio
- 03Run the server with SSE on a selected port
MCP support
The MCP server exposes an `upload_file` tool that accepts a file path and invokes a task chain on the iFlytek SparkAgent Platform. It supports stdio and SSE transports.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
uvx 'git+https://github.com/iflytek/ifly-spark-agent-mcp'IFLY_SPARK_AGENT_BASE_URLIFLY_SPARK_AGENT_APP_IDIFLY_SPARK_AGENT_APP_SECRETSecretLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEifly-spark-agent-mcp
This is a simple example of using MCP Server to invoke the task chain of the iFlytek SparkAgent Platform.
Usage
Local debugging
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 file
MCP Client Example
Using 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())
Usage with MCP client
Use on Claude
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"
}
}
}
}
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.