brvm-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@brvm-mcpWhat are the BRVM stocks with the highest dividend yield?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
brvm-mcp
π«π· Version franΓ§aise
MCP server giving AI assistants access to BRVM public data β the West African regional stock exchange serving 8 UEMOA countries (Benin, Burkina Faso, CΓ΄te d'Ivoire, Guinea-Bissau, Mali, Niger, Senegal, Togo).
The BRVM publishes no public API. This server aggregates 4 data sources into 18 MCP tools so any AI assistant (Claude Desktop, Claude Code, etc.) can query real-time market data, fundamentals, dividends, volumes, and sector indices.
Disclaimer: For information and analysis only. Does not constitute investment advice (regulated activity under AMF-UMOA). Past performance does not guarantee future results.
18 tools
Official data β brvm.org
Tool | Description |
| Market overview: BRVM-C, BRVM-30, BRVM-Prestige indices, market cap, transactions, top/worst movers |
| Prices (FCFA) and % change β all 47 tickers or a specific one |
| Listed companies, filterable by country |
| Company profile + PDF document links (annual reports, BOC) |
| Upcoming dividend payments: issuer, ticker, date, amount per share |
| Dividend yield ranked highest first β the BRVM is primarily a yield market |
| Historical prices from local SQLite database (requires |
| Price performance over the tracked period |
| Database depth: first/last session, tickers tracked |
| P/E ratio, EPS, market cap from BOC PDF or annual report |
| PDF structure diagnostic for troubleshooting extraction |
Supplementary sources
Tool | Source | Added value vs brvm.org |
| AFX Kwayisi | Trading volumes (absent from brvm.org) |
| AFX Kwayisi | P/E, EPS, dividend yield per ticker β no PDF needed |
| AFX Kwayisi | Last 10 sessions with volumes |
| AFX Kwayisi | Sector indices: Energy, Financial Services, Public Utilities (day / 1WK / YTD) |
| Rich Bourse | Previous close + market cap per ticker |
| Sika Finance | Open / High / Low / Close + volumes |
| Sika Finance | Cross-check dividend announcements |
Related MCP server: yfinance
Quick start
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"brvm": {
"command": "uvx",
"args": ["--from", "git+https://github.com/sotechdi/brvm-mcp", "brvm-mcp"]
}
}
}Restart Claude Desktop. Then ask: "What are the BRVM stocks with the highest dividend yield?"
Config file locations:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonWindows (Store):
%LOCALAPPDATA%\Packages\Claude_*\LocalCache\Roaming\Claude\claude_desktop_config.json
Claude Code
claude mcp add brvm -- uvx --from git+https://github.com/sotechdi/brvm-mcp brvm-mcpManual install (pip)
git clone https://github.com/sotechdi/brvm-mcp.git
cd brvm-mcp
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
python server.pyHTTP / Docker mode
For network deployment or integration with non-stdio MCP clients:
docker compose up -dExposes a streamable-http MCP endpoint on port 8000. Set MCP_TRANSPORT=sse for legacy SSE clients.
Historical data
brvm.org only exposes the current session. To build trend analysis, run snapshot.py daily after market close (BRVM fixing ~10:45 GMT):
python snapshot.py # capture today's session (idempotent)
python snapshot.py --stats # show database coverageAutomate with cron (weekdays at 12:00 GMT):
0 12 * * 1-5 cd /path/to/brvm-mcp && .venv/bin/python snapshot.py >> snapshot.log 2>&1LLM agent & regulatory compliance
Beyond raw data access, the repository ships a ReAct agent (LangGraph) that consumes the 18 MCP tools and answers market questions in plain language.
Compliance by design. Publishing investment recommendations in the UEMOA
zone is a regulated activity requiring a CIB licence from the AMF-UMOA. Rather
than relying on prompt instructions alone, every answer passes through an
editorial linter that blocks prescriptive vocabulary β buy, sell,
we recommend, price target, undervalued β before it is returned. Output
that fails the check raises EditorialViolation and is rejected, not
silently rewritten: rewriting would hide the drift instead of surfacing it.
The linter matches prescriptive constructions, not isolated words. "The company sold its subsidiary" is a corporate event and passes; "sell SONATEL" does not. Matching is also accent-insensitive, so a missing diacritic cannot slip prescriptive French past the guardrail. Both distinctions are what keep it usable on real bulletins.
pytest tests/test_editorial.py # 23 prescriptive samples blocked, 14 factual ones passedAnswers therefore stay within factual reporting: prices, yields, volumes, corporate events. No advice, no forecasts.
Architecture
brvm-mcp/
βββ server.py # FastMCP server β 18 tools, stdio/HTTP/SSE transports
βββ snapshot.py # Daily snapshot for historical database
βββ brvm_scraper/
β βββ client.py # HTTP session, TTL cache (15 min), retry/backoff
β βββ quotes.py # Prices, indices, market activity (brvm.org)
β βββ companies.py # Listed companies with country filter
β βββ dividends.py # Dividends + yield calculation
β βββ afx_kwayisi.py # Volumes, fundamentals, sector indices (AFX)
β βββ richbourse.py # Previous close, market cap (Rich Bourse)
β βββ sikafinance.py # OHLC, dividends (Sika Finance)
β βββ storage.py # SQLite historization (UPSERT, stats, performance)
β βββ fundamentals.py # P/E / EPS extraction from PDF (pdfplumber)
βββ agent/
β βββ graph.py # LangGraph ReAct agent over the MCP tools
β βββ tools.py # LangChain wrappers β all 18 tools
β βββ prompts.py # System prompt β analytical role, never advisory
β βββ editorial.py # Prescriptive-vocabulary blocker (regulatory guardrail)
β βββ cli.py # Interactive CLI
βββ tests/
βββ fixture_home.html # Captured brvm.org HTML for offline tests
βββ test_parsers.py # Quote / dividend parsing
βββ test_storage.py # SQLite storage
βββ test_agent_smoke.py # Agent smoke test
βββ test_editorial.py # Editorial linter β blocking + false-positive guardTechnical notes:
Regex on page text, not CSS selectors β more resilient to theme changes
15-minute TTL cache β BRVM runs a single daily fixing (~10:45 GMT), no need to hammer sources
Identifiable User-Agent + exponential backoff β respectful of public infrastructure
Pricing
β sotechdi.github.io/brvm-mcp
Tier | Price | Calls |
Free | $0 | 25/day via HTTP (unlimited in local stdio mode) |
Pro | $9/month | Unlimited + personal API key |
Business | $29/month | Unlimited + 5 API keys + priority support |
Payment: Orange Money, Moov, PayPal, bank transfer β contact@sotechdi.com
Community
Questions, feedback, or ideas? Open a GitHub Discussion β or join the WhatsApp group for French-speaking users (Burkina Faso, CΓ΄te d'Ivoire, SΓ©nΓ©galβ¦): [coming soon]
If this server is useful to you, a β on GitHub helps others find it β thank you!
License
MIT β Β© 2026 Christian Dondire
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server with quote and live cryptocurrency price tools, local and cloud-deployed transports.
33 pay-per-call market and news data tools over MCP with free discovery and x402 payments.
MCP server giving AI agents one-connection access to China A-share market intelligence: financials,
Real-time market events, sentiment, and technical analysis as MCP tools, backed by real data.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceReal-time African stock market data across 13 exchanges in one MCP server. Access live prices, indices, top gainers and losers for NGX (Nigeria), GSE (Ghana), NSE (Kenya), JSE (South Africa), BRVM (West Africa), LuSE (Zambia), DSE (Tanzania) and more. Also covers NASD OTC β Nigeria's Over-The-Counter securities exchange. 14 tools powered by Mansa Markets and NGX Pulse data infrastructure.-
- AlicenseAqualityCmaintenanceA Model Context Protocol (MCP) server that provides comprehensive access to Yahoo Finance data through 18 specialized tools for pricing, financials, options, holders, and news.181MIT
- AlicenseAqualityDmaintenanceMCP server for Indian stock market data. Provides 16 tools for quotes, history, fundamentals, mutual funds, indices, corporate actions, options, IPOs, and portfolio analysis.16375MIT
- FlicenseAqualityCmaintenanceAn MCP server providing Model-usable tools to fetch real-time quotes, historical price charts, fundamental datasets, SEC filings, economic/earnings calendars, option chains, and corporate bond data from TradingView.21-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SOTECHDI/brvm-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server