AgentSkills MCP
Provides comprehensive financial research tools including A-share stock analysis, web scraping, entity extraction, and multi-source search capabilities for building intelligent financial research agents.
README
<p align="center"> <img src="docs/figure/logo.png" alt="Finance MCP Logo" width="50%"> </p>
<p align="center"> <strong>MCP-Server for Anthropic's Agent Skills</strong> </p>
<p align="center"> <a href="https://pypi.org/project/agentskills-mcp/"><img src="https://img.shields.io/badge/python-3.10+-blue" alt="Python Version"></a> <a href="https://pypi.org/project/agentskills-mcp/"><img src="https://img.shields.io/pypi/v/agentskills-mcp.svg?logo=pypi" alt="PyPI Version"></a> <a href="./LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-black" alt="License"></a> <a href="https://github.com/zouyingcao/agentskills-mcp"><img src="https://img.shields.io/github/stars/zouyingcao/agentskills-mcp?style=social" alt="GitHub Stars"></a> </p>
<p align="center"> <em><sub>If you think there are any financial MCP tools that are necessary, please submit an issue to us, and we will respond as soon as possible.</sub></em> </p>
<p align="center"> <a href="./README_ZH.md">简体中文</a> | English </p>
📖 Project Overview
Finance MCP is an intelligent agent toolkit and MCP server designed for financial research scenarios. Built on the FlowLLM framework, it integrates components such as Crawl4AI, Tushare, Tavily/DashScope search, and more, helping you quickly build professional financial research agent systems.
💡 Why Choose Finance MCP?
- ✅ Zero-Code Configuration: Combine operators through YAML configuration files without writing service code
- ✅ Out-of-the-Box: Pre-configured 20+ financial research-related flows covering common research scenarios
- ✅ Multi-Protocol Support: Supports both MCP (stdio/SSE/HTTP) and HTTP RESTful API
- ✅ Smart Caching: Built-in multi-level caching mechanism to improve efficiency and reduce costs
- ✅ Modular Design: Each functional module is independently configurable, supporting enable/disable as needed
📰 Latest Updates
- [2025-12] 🎉 Released agentskills-mcp v0.1.x
🚀 MCP Services
Default MCP Services
| Service Name | Description | Dependencies | Input Parameters |
|---|---|---|---|
| history_calculate | Price-volume analysis based on Tushare A-share historical data | TUSHARE_API_TOKEN |
code: 601899<br>query: How much did it rise in the past week? Any MACD golden cross? |
| crawl_url | Scrape and parse web content | crawl4ai |
url: https://example.com |
| extract_entities_code | Identify financial entities from text and complete stock codes (currently uses dashscope_search, replaceable) | DASHSCOPE_API_KEY |
query: I want to learn about Kweichow Moutai stock |
| execute_code | Execute arbitrary Python code | - | code: print(1+1) |
| execute_shell | Execute shell commands | - | command: ls |
| dashscope_search | Web search based on DashScope | DASHSCOPE_API_KEY |
query: Recent news about Zijin Mining |
| tavily_search | Web search based on Tavily | TAVILY_API_KEY |
query: financial news |
| mock_search | Mock search for LLM simulation | - | query: test query |
| react_agent | ReAct agent combining multiple tools for answering complex questions | - | query: Help me analyze Zijin Mining's trend for the next week |
TongHuaShun MCP Services
Note: These MCP services are implemented via crawl4ai. High concurrency may result in IP blocking.
| Service Name | Description | Dependencies | Input Parameters |
|---|---|---|---|
| crawl_ths_company | Get company profile information by A-share stock code, including details, executive introductions, issuance-related info, subsidiaries, etc., and return query-relevant information | crawl4ai |
code: 600519<br>query: What are the company's main business and executive situation? |
| crawl_ths_holder | Get shareholder research information by A-share stock code, including shareholder count, top 10 circulating shareholders, top 10 shareholders, bondholders, controlling hierarchy, etc. | crawl4ai |
code: 600519<br>query: How have shareholder count and major shareholder structure changed recently? |
| crawl_ths_operate | Get operational analysis information by A-share stock code, including main business introduction, operational data, main business composition, customers & suppliers, business review, product prices, etc. | crawl4ai |
code: 600519<br>query: What is the company's main business composition and operational situation? |
| crawl_ths_equity | Get equity structure information by A-share stock code, including unlock schedule, total equity composition, A-share structure chart, historical equity changes, etc. | crawl4ai |
code: 600519<br>query: What restricted shares will be unlocked in the next year? |
| crawl_ths_capital | Get capital operation information by A-share stock code, including funding sources, project investments, M&A, equity investments, IPO participation, equity transfers, pledge/unfreeze, etc. | crawl4ai |
code: 600519<br>query: What recent M&A or capital operations has the company had? |
| crawl_ths_worth | Get earnings forecast information by A-share stock code, including performance forecasts, detailed forecast tables, research report ratings, etc. | crawl4ai |
code: 600519<br>query: What are the earnings forecasts and institutional ratings for the next three years? |
| crawl_ths_news | Get news and announcements by A-share stock code, including news-price correlation, announcement lists, hot news, research report lists, etc. | crawl4ai |
code: 600519<br>query: What are the recent important announcements or news? |
| crawl_ths_concept | Get concept and theme information by A-share stock code, including regular concepts, other concepts, theme highlights, concept comparison, etc. | crawl4ai |
code: 600519<br>query: What concept themes does this stock involve? |
| crawl_ths_position | Get major position information by A-share stock code, including institutional holdings summary, holding details, takeover situations, IPO allocation institutions, etc. | crawl4ai |
code: 600519<br>query: What is the institutional holding trend and major institutional holdings? |
| crawl_ths_agentskills | Get financial analysis information by A-share stock code, including financial diagnosis, financial indicators, indicator change explanations, asset-liability composition, financial reports, DuPont analysis, etc. | crawl4ai |
code: 600519<br>query: What is the company's profitability and financial structure? |
| crawl_ths_bonus | Get dividend and financing information by A-share stock code, including dividend diagnosis, dividend history, additional issuance allocation details, additional issuance overview, rights issue overview, etc. | crawl4ai |
code: 600519<br>query: What is the historical dividend situation and recent financing arrangements? |
| crawl_ths_event | Get company events by A-share stock code, including executive shareholding changes, shareholder shareholding changes, guarantee details, violations, institutional research, investor interactions, etc. | crawl4ai |
code: 600519<br>query: What are the recent major events or executive shareholding changes? |
| crawl_ths_field | Get industry comparison information by A-share stock code, including industry position, industry news, etc. | crawl4ai |
code: 600519<br>query: What is the company's position in its industry? |
External MCP Services
Note: External MCP services are called via SSE (Server-Sent Events). You need to configure the
BAILIAN_MCP_API_KEYenvironment variable in.env.
| Service Name | Description | Dependencies | Input Parameters |
|---|---|---|---|
| tongyi_search | WebSearch service based on DashScope | BAILIAN_MCP_API_KEY |
query: Recent news about Zijin Mining |
| bochaai_search | BochaAI search service based on DashScope | BAILIAN_MCP_API_KEY |
query: financial news |
🚀 Quick Start
Installation
Install Finance MCP using pip:
pip install agentskills-mcp
Or using uv:
uv pip install agentskills-mcp
Usage Modes
Finance MCP supports two usage modes:
- Stdio Mode: Direct execution via
uvx, suitable for local MCP clients (Claude Desktop, Cursor, etc.) - Service Mode: Start as HTTP/SSE server, suitable for remote deployment and web applications
Mode 1: Stdio Mode (Direct Execution)
This mode runs Finance MCP directly through uvx, communicating via standard input/output. Ideal for local MCP clients.
Step 1: Configure MCP Client
Add this configuration to your MCP client (e.g., Claude Desktop, Cursor):
{
"mcpServers": {
"agentskills-mcp": {
"command": "uvx",
"args": [
"agentskills-mcp",
"config=default,ths",
"mcp.transport=stdio",
"llm.default.model_name=qwen3-30b-a3b-thinking-2507",
"disabled_flows='[\"tavily_search\",\"mock_search\",\"react_agent\"]'"
],
"env": {
"FLOW_LLM_API_KEY": "xxx",
"FLOW_LLM_BASE_URL": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"DASHSCOPE_API_KEY": "xxx",
"TUSHARE_API_TOKEN": "xxx",
"TAVILY_API_KEY": "xxx",
"BAILIAN_MCP_API_KEY": "xxx"
}
}
}
}
Mode 2: Service Mode (HTTP/SSE Server)
This mode starts Finance MCP as a standalone HTTP/SSE server that can be accessed remotely.
Step 1: Configure Environment Variables
Copy example.env to .env and fill in your API keys:
cp example.env .env
# Edit .env and fill in your API keys
Step 2: Start the Server
Start the Finance MCP server with SSE transport:
agentskills-mcp \
config=default,ths \
mcp.transport=sse \
mcp.host=0.0.0.0 \
mcp.port=8001 \
llm.default.model_name=qwen3-30b-a3b-thinking-2507 \
disabled_flows='["tavily_search","mock_search","react_agent"]'
The service will be available at: http://0.0.0.0:8001/sse
Step 3: Connect from MCP Client
Add this configuration to your MCP client to connect to the remote SSE server:
{
"mcpServers": {
"agentskills-mcp": {
"type": "sse",
"url": "http://0.0.0.0:8001/sse"
}
}
}
HTTP RESTful API with Streaming Support
Finance MCP also supports HTTP RESTful API mode with streaming capabilities. This allows you to access flows directly via HTTP endpoints, not just through MCP protocol.
Step 1: Start HTTP Server
Start the Finance MCP server with HTTP backend:
agentskills-mcp \
config=default,stream_agent \
backend=http \
http.host=0.0.0.0 \
http.port=8002 \
llm.default.model_name=qwen3-30b-a3b-thinking-2507
Step 2: Make Streaming HTTP Requests
All flows configured with stream: true will be exposed as streaming HTTP endpoints. Responses are streamed in real-time using Server-Sent Events (SSE) format.
Example: Request streaming deep research (inspired by open_deep_research):
curl -X POST http://0.0.0.0:8002/langchain_deep_research \
-H "Content-Type: application/json" \
-d '{"query": "I want to learn about Kweichow Moutai stock"}'
The response will be streamed in real-time, showing:
- Thinking process and reasoning
- Tool calls and intermediate results
- Final comprehensive answer
Note: By default, this uses DashScope search, but you can replace it with other search backends (e.g., Tavily) by modifying the stream_agent.yaml configuration.
Configuration Parameters
| Parameter | Description | Example |
|---|---|---|
config |
Configuration files to load (comma-separated). Available: default (core flows), ths (TongHuaShun stock data), stream_agent (streaming agents), external_mcp (external MCP services) |
config=default,ths |
mcp.transport |
Transport mode: stdio (Claude Desktop), sse (web apps), http (RESTful), streamable-http |
mcp.transport=stdio |
mcp.host |
Host address (for sse/http transports only) | mcp.host=0.0.0.0 |
mcp.port |
Port number (for sse/http transports only) | mcp.port=8001 |
llm.default.model_name |
Default LLM model name (overrides config file) | llm.default.model_name=qwen3-30b-a3b-thinking-2507 |
disabled_flows |
JSON array of flow names to disable. Tip: Disable flows if you don't have the required API keys (e.g., tavily_search requires TAVILY_API_KEY) |
disabled_flows='["react_agent"]' |
Environment Variables
| Variable | Required | Description |
|---|---|---|
FLOW_LLM_API_KEY |
✅ Yes | API key for OpenAI-compatible LLM service |
FLOW_LLM_BASE_URL |
✅ Yes | Base URL for OpenAI-compatible LLM service |
DASHSCOPE_API_KEY |
⚠️ Optional | For DashScope search and entity extraction |
TUSHARE_API_TOKEN |
⚠️ Optional | For historical data analysis |
TAVILY_API_KEY |
⚠️ Optional | For Tavily web search |
BAILIAN_MCP_API_KEY |
⚠️ Optional | For external MCP services |
Using with FastMCP Client
When running in Service Mode, you can also use the FastMCP Python client to directly access the server:
import asyncio
from fastmcp import Client
async def main():
async with Client("http://0.0.0.0:8001/sse") as client:
result = await client.call_tool(
name="dashscope_search",
arguments={"query": "Recent news about Zijin Mining"}
)
print(result)
asyncio.run(main())
🤝 Contributing
We welcome contributions! To get started:
- Install the package in development mode:
pip install -e .
- Install pre-commit hooks:
pip install pre-commit
pre-commit run --all-files
- Submit a pull request with your changes.
📚 Learn More
- Agent Skills Documentation - Official Anthropic documentation on the Skills format
- Claude Agent Skills: A First Principles Deep Dive
⚖️ License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
📈 Star History
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.