A REMOTE MCP SERVER, STREAMABLE HTTP, NO API KEY
Public Ghana market data,
wired straight into your AI tools.
Fifteen read-only tools bring the Ghana Stock Exchange, the Bank of Ghana, the Ghana Statistical Service and the IMF to any MCP client — Claude, or anything else that speaks the protocol. No scraping in your prompt, no stale copy-paste from a PDF.
THE LEDGER
Fifteen tools, four sources
Every tool is read-only and namespaced by where its data comes from. Full parameter
reference lives in the repo's docs/ folder, linked from each row.
Ghana Stock Exchange
gse.com.ghgse_get_stock_history
Daily prices and volume for one share code, back to 2007
gse_rank_stocks
Rank the whole exchange, or compare a named basket, by return, price change, volume or turnover — one request
gse_list_companies
Every listed company: share code, name, board, listing date
gse_search_company
Best-matching companies for a name, with a confidence score
gse_get_market_index
Market-wide GSE Composite Index, market cap, GSE-FSI, volume
gse_list_fixed_income_issuers
Corporate bond issuers on the Ghana Fixed Income Market
Bank of Ghana
bog.gov.ghbog_get_interbank_fx_rates
Cedi reference rates against 19 currencies — latest day, or history to 1996
bog_get_treasury_bill_rates
Government of Ghana bill, note and bond rates, back to 2013
bog_get_central_bank_bill_rates
The Bank of Ghana's own bill rates, back to 2016
bog_get_interbank_interest_rates
Interbank weighted average, reverse repo and depo rates, back to 2002
International Monetary Fund
DataMapper APIimf_list_indicators
Search ~130 macroeconomic indicators by keyword; returns the code each match needs
imf_get_indicator_history
Time series for one or more indicators — GDP, inflation, debt, and more — for Ghana and, optionally, other countries, regions or analytical groups
Ghana Statistical Service
StatsBank · PxWebgss_list_tables
The 16 official StatsBank macroeconomic tables, filterable by keyword or sector
gss_describe_table
One table's filterable dimensions, every value each accepts, and which periods are published
gss_get_data
Observations for a table — official CPI for Ghana and all 16 regions, GDP, public debt, fiscal accounts, money and credit, rates, trade and more
ping
— no input, returns { ok, server, version }. Belongs to no source; a clean connectivity check.
DATA PROVENANCE
Every answer says how fresh it is
Nothing is ever presented as live when it isn't. Each result carries a meta.origin
stamp, so a model — and a reader — can tell the difference.
Just fetched from the source site, this request.
A fresh cached copy. ageSeconds says exactly how old.
The live fetch failed, so an expired copy was served — flagged with a warning.
The fetch failed entirely; a built-in fallback list was used instead.
OPENING THE ACCOUNT
Connect in one line, or run your own copy
No secrets either way — the underlying data is public, so there's no key to provision. Point a client at the hosted server below, or self-host in five commands if you'd rather run your own copy.
Connect to the hosted server
No clone, no install, nothing to run — every client below just needs this one address:
https://ghana-data-mcp.epigos.workers.dev/mcp
Claude Code, one line:
claude mcp add --transport http \ ghana-data https://ghana-data-mcp.epigos.workers.dev/mcp
In claude_desktop_config.json:
{
"mcpServers": {
"ghana-data": {
"type": "http",
"url": "https://ghana-data-mcp.epigos.workers.dev/mcp"
}
}
}
Restart Claude Desktop after saving.
Claude.ai and the Claude desktop app take remote servers as custom connectors:
- Settings → Connectors → Add custom connector
- Paste
https://ghana-data-mcp.epigos.workers.dev/mcpas the URL - Name it (e.g. "Ghana Data") and save — no authentication to configure
- Enable it from the connector picker in a chat
ChatGPT reaches remote MCP servers through Connectors (menu names shift between plans, but the shape is the same):
- Settings → Connectors → Advanced settings → enable Developer mode
- Create connector, paste the URL above, authentication: None
- Enable the connector for the chat you want to use it in
Add to ~/.cursor/mcp.json (or a project's .cursor/mcp.json):
{
"mcpServers": {
"ghana-data": {
"url": "https://ghana-data-mcp.epigos.workers.dev/mcp"
}
}
}
Anything that speaks Streamable HTTP can connect directly — point it at the URL above, no auth header required. A plain health check needs no MCP client at all:
curl https://ghana-data-mcp.epigos.workers.dev/health
Confirm the connection before asking
anything real: Use the ping tool on the ghana-data server.
...or run your own copy
Run it locally
-
Clone and install
Pull the repo and its dependencies.
-
Run the test suite
Fixture-based, no network — confirms the build is sound before you serve anything.
-
Start the dev server
Serves MCP at
http://localhost:8787/mcpvia Wrangler. -
Point a client at it
Streamable HTTP, no authentication — see the snippets on the right.
# one block, top to bottom
git clone git@github.com:epigos/ghana-data-mcp.git
cd ghana-data-mcp
npm install
npm test
npm run dev
Connect a client (local)
Claude Code, one line:
claude mcp add --transport http \ ghana-data http://localhost:8787/mcp
Claude Desktop, in claude_desktop_config.json:
{
"mcpServers": {
"ghana-data": {
"type": "http",
"url": "http://localhost:8787/mcp"
}
}
}
Confirm the connection before asking anything real:
> Use the ping tool on the ghana-data server.
WHAT IT'S FOR
Seven things people actually build with it
All read-only, all pointed at public sources — the tools compose across GSE, BoG, GSS and IMF rather than staying siloed by source.
Equity research copilot
Look up a share by name, pull its full price history, and read it alongside the GSE Composite Index for context — without a ticker cheat-sheet.
FX & rates desk assistant
Cedi reference rates against 19 currencies plus T-bill, central-bank-bill and interbank rates, for a daily treasury briefing bot.
Macro briefing generator
GDP growth, inflation, government debt — each row flagged as historical actual or IMF's own forward projection, never blurred together.
West Africa comparison
Benchmark Ghana against a named neighbor or a whole bloc — Nigeria, Senegal, ECOWAS, Sub-Saharan Africa — on the same indicator, same call.
Regional inflation monitor
Official GSS inflation for Ghana and all 16 regions, split by product basket and by local or imported source — the figure Ghanaian policy documents actually quote.
Fixed-income screening
Cross-reference corporate bond issuers on the Fixed Income Market against prevailing benchmark rates from the Bank of Ghana.
Freshness-aware reporting
Every figure carries meta.origin — build a dashboard that visibly
distinguishes live numbers from a stale fallback, rather than hiding the gap.
SAY IT IN CHAT
What the questions actually look like
No special syntax — a client with the server connected resolves these to the right tool call on its own.
rowCount before comparing — a bloc-wide aggregate isn't always published for a given indicator.UNDER THE HOOD
How a request actually travels
Runs on Cloudflare Workers with no Durable Object — every tool is an independent, read-only fetch with no session state worth keeping. Repeat questions are served from Workers KV before they ever reach a source site; a jittered backoff handles the occasional 403 or 429; an inbound limit of 30 requests/minute per IP keeps a looping client from becoming someone else's problem.