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 (ES384 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) |
FDBIZ_ALGORITHM |
JWT signing alg (default ES384 — Logto's EC P-384 key; set RS256 if your IdP signs RSA). |
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
Token-based publishing — tag v* triggers .github/workflows/release.yml
(build → twine check → wheel smoke test → publish to PyPI via API token).
Harbor image built by .github/workflows/docker-publish.yml on push to
main / tags.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fd_find_data_business_mcp-0.1.2.tar.gz.
File metadata
- Download URL: fd_find_data_business_mcp-0.1.2.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5e4d735172d57de4b465b9ede74a2c34c436d36233f9bbbe0070d70970b2b81
|
|
| MD5 |
516794de0695336b8c3de2cdc5dfb251
|
|
| BLAKE2b-256 |
7fbac68b6a12bfa03511c3174614d9a366ed0850cd0ef783e61eb45e3fb19ecf
|
File details
Details for the file fd_find_data_business_mcp-0.1.2-py3-none-any.whl.
File metadata
- Download URL: fd_find_data_business_mcp-0.1.2-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca4389d0cad678211e58dc4fb1af66cc04c831415680fdbd7c4344cb246c8bac
|
|
| MD5 |
a52685ec7e6fe9724451307d48b124a1
|
|
| BLAKE2b-256 |
4bccd0156a3133e7365df557bd6348d44526224f9ea982a21176a3996659f2f8
|