fd-find-data-business-mcp
Provides login-gated access to FindData's crawled business data, enabling users to read indicators over time, list concepts, search via natural language, and run graph queries.
README
fd-find-data-business-mcp
Commercial, login-gated MCP server that serves FindData's own crawled data to
paying users. Depends on fd-open-data-mcp
as a library and reuses its cache, dispatch, and catalog — but exposes zero
upstream-provider identity in responses. Every value is branded finddata;
no source_used / real_source_used key ever reaches a client.
Tools
| Tool | Purpose |
|---|---|
read |
One indicator for an entity over a list of dates (serves fresh OR stale cache; true miss dispatches in-process). |
read_range |
Bulk series for one or more indicators over [start, end]. |
list_concepts |
Browse all available FindData indicators. |
ai_search |
Natural-language indicator + entity discovery (superset of all search tools). |
graph_search |
Entity-relationship graph queries (bfs/dfs/neighbors/shortest_path/subgraph/ego_graph/statistics). |
Install
pip install fd-find-data-business-mcp
Run (local dev, no auth)
export FD_OPEN_DATA_MCP_DATABASE_URL=postgresql://fd:***@localhost:30432/fd_open_data
fd-find-data-business-mcp serve --transport http --host 0.0.0.0 --port 8310
With FDBIZ_JWKS_URI unset, auth is disabled (smoke test / local dev). Set it
in deploy to reject every request without a valid Logto-issued JWT (401 before
any tool runs).
Deploy (zihan k3s, namespace fd-mcp)
Auth is Logto (RS256 JWT) via FastMCP's JWTVerifier. The canonical Logto
instance runs on guangzhou-xinru:
| Env var | Value |
|---|---|
FD_OPEN_DATA_MCP_DATABASE_URL |
postgresql://fd:***@100.64.0.3:30432/fd_open_data (mesh address of guangzhou-xinru) |
FDBIZ_JWKS_URI |
https://auth.finddatatech.cloud/oidc/jwks |
FDBIZ_ISSUER |
https://auth.finddatatech.cloud/oidc |
FDBIZ_AUDIENCE |
the API resource identifier you register in Logto admin (recommended: https://api.finddatatech.cloud/mcp) |
These four keys are added to the shared fd-mcp-env Secret (carries
FD_OPEN_DATA_MCP_DATABASE_URL / REDIS_URL already — the business pod reuses
them; MCP_BEARER_TOKEN from the sibling pods is inert here, this pod uses JWT
auth, not bearer):
# on zihan (sudo kubectl)
sudo kubectl -n fd-mcp create secret generic fd-mcp-env \
--from-literal=FD_OPEN_DATA_MCP_DATABASE_URL='postgresql://fd:***@100.64.0.3:30432/fd_open_data' \
--from-literal=REDIS_URL='redis://:***@100.64.0.3:30380/0' \
--from-literal=FDBIZ_JWKS_URI='https://auth.finddatatech.cloud/oidc/jwks' \
--from-literal=FDBIZ_ISSUER='https://auth.finddatatech.cloud/oidc' \
--from-literal=FDBIZ_AUDIENCE='https://api.finddatatech.cloud/mcp' \
--dry-run=client -o yaml | sudo kubectl apply -f -
sudo kubectl -n fd-mcp apply -f k8s/zihan/40-fd-find-data-business-mcp.yaml
Reachable over the mesh at http://100.64.0.4:30803/mcp (zihan NodePort 30803).
Logto: register the API resource
In the Logto admin console (https://auth-admin.finddatatech.cloud), create an
API resource with identifier https://api.finddatatech.cloud/mcp (this
becomes the aud claim in issued tokens, and must equal FDBIZ_AUDIENCE).
Create a client (M2M or first-party SPA) authorized for that audience; paying
users' tokens must carry aud: https://api.finddatatech.cloud/mcp.
Publish
OIDC trusted publishing — tag v* triggers .github/workflows/release.yml
(build → twine check → wheel smoke test → publish to PyPI). Harbor image built
by .github/workflows/docker-publish.yml on push to main / tags.
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.