VNStock MCP Server

VNStock MCP Server

Provides access to Vietnam stock market data including real-time quotes, historical prices, company financials, trading statistics, mutual fund information, and exchange rates through the vnstock library.

Category
访问服务器

README

VNStock MCP Server (Unofficial)

Test Status PyPI version PyPI downloads Python versions License: MIT

An unofficial MCP (Model Context Protocol) server that provides tools to access Vietnam stock market data. This is a wrapper around the excellent vnstock library by @thinh-vu.

Note: This is an independent project and is not officially affiliated with the vnstock library or its maintainers.

About vnstock

This MCP server is built on top of the vnstock library - a powerful Python toolkit for Vietnamese stock market analysis created by Thinh Vu. vnstock provides comprehensive access to Vietnam stock market data including:

  • Real-time and historical stock prices
  • Company financial statements
  • Market data and trading statistics
  • Mutual fund information
  • Gold prices and exchange rates

For more information about the underlying library, visit: https://github.com/thinh-vu/vnstock

Features

This MCP server exposes vnstock's capabilities through MCP tools, allowing AI assistants and other MCP clients to:

  • Access company information and financial data
  • Retrieve stock quotes and historical prices
  • Get trading statistics and market data
  • Query mutual fund information
  • Access gold prices and exchange rates
  • Retrieve financial statements (income, balance sheet, cash flow)

Installation

Install from PyPI (Recommended)

pip install vnstock-mcp-server

Install from source

git clone https://github.com/maobui/vnstock-mcp-server.git
cd vnstock-mcp-server
uv sync

Prerequisites

  • Python 3.10+
  • uv (install with pip install uv or see https://docs.astral.sh/uv/)

Quick Start

Run the MCP server

Default mode (stdio)

# If installed from PyPI
vnstock-mcp-server

# If installed from source with uv
uv run python -m vnstock_mcp.server

With transport options

# Use stdio transport (default)
vnstock-mcp-server --transport stdio

# Use Server-Sent Events (SSE) transport for web applications
vnstock-mcp-server --transport sse

# Use SSE with custom mount path
vnstock-mcp-server --transport sse --mount-path /vnstock

# Use HTTP streaming transport
vnstock-mcp-server --transport streamable-http

# Show help with all available options
vnstock-mcp-server --help

The server uses FastMCP and supports multiple transport protocols:

  • stdio: Standard input/output (default, for MCP clients like Claude Desktop)
  • sse: Server-Sent Events (for web applications)
  • streamable-http: HTTP streaming (for HTTP-based integrations)

Transport Modes

The VNStock MCP Server supports three different transport protocols to accommodate various use cases:

stdio (Default)

  • Use case: Standard MCP clients like Claude Desktop, Cursor, Cline
  • Protocol: Communication via standard input/output streams
  • Usage: vnstock-mcp-server or vnstock-mcp-server --transport stdio
  • Best for: Desktop applications and traditional MCP integrations

SSE (Server-Sent Events)

  • Use case: Web applications that need real-time data streaming
  • Protocol: HTTP-based server-sent events
  • Usage: vnstock-mcp-server --transport sse [--mount-path /path]
  • Server runs on: http://127.0.0.1:8000 (default)
  • Best for: Web dashboards, browser-based applications

streamable-http

  • Use case: HTTP-based integrations and API services
  • Protocol: HTTP streaming with JSON-RPC over HTTP
  • Usage: vnstock-mcp-server --transport streamable-http
  • Server runs on: http://127.0.0.1:8000 (default)
  • Best for: REST API integrations, microservices architecture

Command Line Options

vnstock-mcp-server [OPTIONS]

Options:
  -t, --transport {stdio,sse,streamable-http}
                        Transport protocol to use (default: stdio)
  -m, --mount-path MOUNT_PATH
                        Mount path for SSE transport (optional)
  -v, --version         Show version information
  -h, --help           Show help message

MCP client integration

Cursor / Cline example

Add a server entry in your MCP configuration:

Default stdio transport

{
  "mcpServers": {
    "vnstock": {
      "command": "uvx",
      "args": [
        "vnstock-mcp-server"
      ]
    }
  }
}

With specific transport options

{
  "mcpServers": {
    "vnstock-sse": {
      "command": "uvx",
      "args": [
        "vnstock-mcp-server",
        "--transport",
        "sse",
        "--mount-path",
        "/vnstock"
      ]
    },
    "vnstock-http": {
      "command": "uvx",
      "args": [
        "vnstock-mcp-server",
        "--transport",
        "streamable-http"
      ]
    }
  }
}

If installed from source:

{
  "mcpServers": {
    "vnstock": {
      "command": "uv",
      "args": ["run", "python", "-m", "vnstock_mcp.server"],
      "env": {}
    },
    "vnstock-sse": {
      "command": "uv",
      "args": ["run", "python", "-m", "vnstock_mcp.server", "--transport", "sse"],
      "env": {}
    }
  }
}

Claude Desktop example

In MCP server settings:

  • Command: vnstock-mcp-server
  • Args: (leave empty for stdio, or add transport options like --transport sse)

Available Tools

The MCP server provides the following categories of tools:

Company Information

  • Company overview, news, events
  • Shareholders and officers information
  • Subsidiaries and insider deals
  • Trading statistics and ratios

Financial Data

  • Income statements, balance sheets, cash flows
  • Financial ratios and raw reports
  • Historical financial data (quarterly/yearly)

Market Data

  • Real-time quotes and historical prices
  • Intraday trading data and price depth
  • Market price boards for multiple symbols

Fund Information

  • Fund listings and search
  • NAV reports and holdings
  • Industry and asset allocation

Miscellaneous

  • Gold prices (SJC, BTMC)
  • Exchange rates
  • Symbol listings by industry/group

Development

Install with uv (for development)

# From the project root
uv sync

# Include dev dependencies (for tests and coverage)
uv sync --group dev

Testing with uv

# Run all tests
uv run pytest

# Run a specific test file
uv run pytest test/test_company_tools.py

# Run with coverage (HTML)
uv run pytest --cov=src/vnstock_mcp --cov-report=html
# Open report:
#   ./htmlcov/index.html

Building and Publishing

Build locally

# Using the build script
./scripts/build.sh

# Or manually
python -m build

Create a release

# Update version in pyproject.toml first, then:
./scripts/release.sh

This will:

  1. Run tests
  2. Create and push a git tag
  3. Trigger GitHub Actions to build and publish to PyPI

Credits

This project is a wrapper around the vnstock library created by @thinh-vu. All stock market data access functionality is provided by vnstock.

Please consider:

Disclaimer

This is an unofficial wrapper and is not affiliated with the vnstock library or its maintainers. For issues related to the underlying stock market data or vnstock functionality, please refer to the vnstock repository.

Troubleshooting

Installation Issues

  • Module not found with uv run:
    • Ensure uv sync completed successfully in the project root.
    • Verify Python version: python --version and uv python list.
  • Command vnstock-mcp-server not found:
    • Ensure the package is installed: pip list | grep vnstock-mcp-server
    • Try reinstalling: pip install --upgrade vnstock-mcp-server

Connection Issues

  • MCP client cannot connect (stdio mode):
    • Confirm the client configuration matches the installation method
    • Check client logs for detailed errors.
    • Ensure no extra arguments are passed for stdio transport
  • Cannot access SSE/HTTP endpoints:
    • Verify the server is running: check for "Uvicorn running on http://127.0.0.1:8000"
    • Check if port 8000 is available: netstat -an | grep 8000
    • Try accessing http://127.0.0.1:8000 in browser for SSE mode

Transport Mode Issues

  • SSE transport not working:
    • Ensure mount-path is correctly specified if needed
    • Check server logs for startup errors
    • Verify web client can connect to the SSE endpoint
  • Wrong transport mode selected:
    • Use --help to see available transport options
    • stdio: for desktop MCP clients (Claude Desktop, Cursor)
    • sse: for web applications
    • streamable-http: for HTTP API integrations

Getting Help

  • Check server version: vnstock-mcp-server --version
  • View all options: vnstock-mcp-server --help
  • Test server startup: Run with --transport stdio first to verify basic functionality

License

MIT License - see LICENSE file for details.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Run tests: uv run pytest
  6. Submit a pull request

Changelog

v1.1.0 (Current Development)

  • NEW: Added support for multiple transport modes (stdio, sse, streamable-http)
  • NEW: Command line arguments for transport selection (--transport, --mount-path)
  • NEW: SSE (Server-Sent Events) transport for web applications
  • NEW: HTTP streaming transport for API integrations
  • IMPROVED: Enhanced CLI with help messages and validation
  • IMPROVED: Better error handling and user feedback
  • IMPROVED: Comprehensive documentation for all transport modes

v1.0.0

  • Initial release
  • Full Vietnam stock market data access via MCP
  • Support for company data, financial statements, quotes, and more
  • Wrapper around vnstock v3.2.6+

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选