Install
$ agentstack add mcp-flowllm-ai-finance-mcp ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Finance-MCP
📖 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 finance-mcp v0.1.x
🚀 Quick Start
Installation
Install Finance MCP using pip:
pip install finance-mcp
Or using uv:
uv pip install finance-mcp
Stdio Mode
This mode runs Finance MCP directly through uvx, communicating via standard input/output. Ideal for local MCP clients.
{
"mcpServers": {
"finance-mcp": {
"command": "uvx",
"args": [
"finance-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"
}
}
}
}
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:
finance-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": {
"finance-mcp": {
"type": "sse",
"url": "http://0.0.0.0:8001/sse"
}
}
}
Step 4: 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:
for tool in client.list_tools():
print(tool)
result = await client.call_tool(
name="dashscope_search",
arguments={"query": "Recent news about Zijin Mining"}
)
print(result)
asyncio.run(main())
One-Command Test
python test_op/test_project_sse.py
This will start the server, connect via FastMCP client, and test all available tools automatically.
🚀 MCP Tools
Default Tools
| Tool Name | Description | Dependencies | Input Parameters | |---------------------------|---------------------------------------------------------------------------------------------------------------|---------------------|--------------------------------------------------------------------------------------------| | historycalculate | Price-volume analysis based on Tushare A-share historical data | TUSHARE_API_TOKEN | code: 601899query: How much did it rise in the past week? Any MACD golden cross? | | crawlurl | Scrape and parse web content | crawl4ai | url: https://example.com | | extractentitiescode | Identify financial entities from text and complete stock codes (currently uses dashscopesearch, replaceable) | DASHSCOPE_API_KEY | query: I want to learn about Kweichow Moutai stock | | executecode | Execute arbitrary Python code | - | code: print(1+1) | | executeshell | Execute shell commands | - | command: ls | | dashscopesearch | Web search based on DashScope | DASHSCOPE_API_KEY | query: Recent news about Zijin Mining | | tavilysearch | Web search based on Tavily | TAVILY_API_KEY | query: financial news | | mocksearch | 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 Tools
> Note: These tools are implemented via crawl4ai. High concurrency may result in IP blocking.
| Tool Name | Description | Dependencies | Input Parameters | |------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|----------------------------------------------------------------------------------------------------------------| | crawlthscompany | 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: 600519query: What are the company's main business and executive situation? | | crawlthsholder | 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: 600519query: How have shareholder count and major shareholder structure changed recently? | | crawlthsoperate | 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: 600519query: What is the company's main business composition and operational situation? | | crawlthsequity | 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: 600519query: What restricted shares will be unlocked in the next year? | | crawlthscapital | 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: 600519query: What recent M&A or capital operations has the company had? | | crawlthsworth | Get earnings forecast information by A-share stock code, including performance forecasts, detailed forecast tables, research report ratings, etc. | crawl4ai | code: 600519query: What are the earnings forecasts and institutional ratings for the next three years? | | crawlthsnews | Get news and announcements by A-share stock code, including news-price correlation, announcement lists, hot news, research report lists, etc. | crawl4ai | code: 600519query: What are the recent important announcements or news? | | crawlthsconcept | Get concept and theme information by A-share stock code, including regular concepts, other concepts, theme highlights, concept comparison, etc. | crawl4ai | code: 600519query: What concept themes does this stock involve? | | crawlthsposition | Get major position information by A-share stock code, including institutional holdings summary, holding details, takeover situations, IPO allocation institutions, etc. | crawl4ai | code: 600519query: What is the institutional holding trend and major institutional holdings? | | crawlthsfinance | 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: 600519query: What is the company's profitability and financial structure? | | crawlthsbonus | 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: 600519query: What is the historical dividend situation and recent financing arrangements? | | crawlthsevent | 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: 600519query: What are the recent major events or executive shareholding changes? | | crawlthsfield | Get industry comparison information by A-share stock code, including industry position, industry news, etc. | crawl4ai | code: 600519query: 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_KEY environment variable in .env.
| Service Name | Description | Dependencies | Input Parameters | |--------------------|-------------------------------------------|-----------------------|-----------------------------------------| | tongyisearch | WebSearch service based on DashScope | BAILIAN_MCP_API_KEY | query: Recent news about Zijin Mining | | bochaaisearch | BochaAI search service based on DashScope | BAILIAN_MCP_API_KEY | query: financial news |
Server 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"]' |
For the full set of available options and defaults, refer to [default.yaml](./finance_mcp/config/default.yaml).
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
…
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: FlowLLM-AI
- Source: FlowLLM-AI/finance-mcp
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.