Token导航 LogoToken导航TokenDH.com
India Finance MCP Server logo
安全风控未说明官方级别未说明来源级核验

India Finance MCP Server

MCP Server

提供统一访问印度金融数据(NSE、BSE、共同基金、新闻、宏观数据)的MCP服务器,支持OAuth 2.1和基于角色的访问层级。

工具数

1

提示词数

0

GitHub Stars

0

资源数

0
金融数据TypeScriptCursorCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

abhivoid

提供方

abhivoid

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

印度金融MCP服务器

一个MCP服务器,通过OAuth 2.1和基于角色的层提供对印度金融数据(NSE、BSE、共同基金、新闻、宏观)的统一访问。

堆栈

  • 运行时间: Node.js 18+、TypeScript、Fastify
  • MCP: @modelcontextprotocol/sdk (流式HTTP,有状态会话)
  • 基础设施(Docker): Keycloak 26、PostgreSQL 16、Redis 7

第0天设置

  1. 克隆仓库。
  2. 复制 .env.example.env 在回购根(用于Compose变量替换),并根据需要填写API键。
  3. 从repo根目录: docker compose up --build.
  4. 配置Keycloak(开发):

- 打开 http://localhost:8080 并使用登录 管理员 / 管理员 (引导管理员从 KC_BOOTSTRAP_ADMIN_*). - 创建领域 finance. - 创建公共客户端 mcp-client 启用了PKCE(用于以后的OAuth流)。

  1. 验证API:

- curl -s http://localhost:3000/health{"status":"ok"} - 可选: curl -s http://localhost:3000/.well-known/oauth-protected-resource 用于OAuth资源元数据。

本地开发(Node应用程序不使用Docker)

npm install --prefix server
cp .env.example server/.env   # optional; dotenv loads from cwd
npm run dev --prefix server

数据库注释

PostgreSQL用数据库初始化 keycloak (适用于Keycloak)和 mcp_data (适用于应用程序),通过 scripts/init-mcp-db.sqlMCP容器使用 DATABASE_URL=postgresql://keycloak:keycloak@postgres:5432/mcp_data.

MCP端点

  • 发布/获取/删除 /mcp --带有会话头的流式HTTP mcp-session-id 初始化后(请参阅MCP Streamable HTTP规范和 @modelcontextprotocol/sdk 示例)。 需要承载访问令牌 在所有 /mcp 电话(第1天)。

第1天:OAuth、层和NSE报价

钥匙锁

  1. 领域 finance,客户 mcp-client (根据需要,公开PKCE)。
  2. 启用 直接访问授权mcp-client 如果你使用 scripts/get-token.sh (仅限dev)。
  3. 领域角色: free, premium, analyst --分配给测试用户(例如。 free@example.com, …).
  4. 确保 领域角色出现在访问令牌中 (客户范围+ *领域角色* 映射器,或默认值 roles 范围)。
  5. 受众/授权方:令牌应包括 azp = mcp-clientaud 包含 mcp-client (添加一个 观众 如果需要,可以在Keycloak中使用映射器)。

环境

.env.example: AUTH_SERVER_URL (必须与JWT匹配 iss),可选 KEYCLOAK_INTERNAL_URL 当MCP容器从以下位置获取JWKS时 http://keycloak:8080/... 但代币使用 http://localhost:8080/...,加 PUBLIC_BASE_URL, OAUTH_CLIENT_ID.

工具

  • get_stock_quote --NSE股权报价 stock-nse-india (the nseindia 简报中的npm名称未发布;这个图书馆提供 NseIndia).报价缓存在 瑞迪斯 (60秒TTL);在上游故障时,缓存值在可用时返回。
  • Tier → 合成的 范围 源自于 realm_access.rolesserver/src/auth/tiers.ts.中间件需要 market:read 对于任何 /mcp 交通;报价工具通过MCP检查相同的范围 authInfo.

开发者令牌

./scripts/get-token.sh free@example.com 'user-password'

为什么显示光标 invalid_union /JSON-RPC错误

MCP客户端只理解 JSON-RPC 2.0 身体。其他任何内容(例如Fastify的默认设置) 404 JSON,或 { "error": "missing_token" } 关于飞行前的选项)被验证为JSON-RPC并失败。

此服务器现在:

  • 跳过熊认证 OPTIONSHEAD/mcp (CORS飞行前)。
  • 寄存器 跨域资源共享 (@fastify/cors)用于浏览器/Electron OAuth流。
  • 退货 JSON RPC形状错误 对于坏 获取/删除 会话案例。
  • 供应 RFC 9728–样式 元数据在 /.well-known/oauth-protected-resource (包括 resource, authorization_servers, jwks_uri, openid_configuration).

游标:OAuth与静态 Authorization 头球

  • OAuth(authmcp.json):Cursor负责打开登录页面、交换代码和附加 Authorization: Bearer … MCP HTTP请求。该行为在 光标,不在这个回购中。同样的模式也适用于 身份验证0, 钥匙锁,或任何OIDC提供商,只要发行者/JWKS和客户端设置匹配。
  • 不要 混合长寿命 headers.Authorization 进入与 auth 除非你知道Cursor的合并规则;更喜欢 方法。无秘密示例: docs/cursor-mcp.example.json.

如果您之前将JWT粘贴到 mcp.json, 旋转 Keycloak中的用户会话或客户端密钥,并仅使用OAuth或短期开发令牌。

如何调用此MCP

  1. 光标 --在中添加服务器 mcp.json (参见示例),启动Docker/ npm start,重新加载MCP;在提示时完成OAuth。
  2. curl/脚本 --获取令牌(scripts/get-token.sh),然后发送 Authorization: Bearer 在每一个 发布/获取/删除/mcp (流式HTTP+ mcp-session-id 初始化后)。
  3. 其他MCP客户端 --将HTTP传输指向 http://localhost:3000/mcp 并使用配置OIDC /.well-known/oauth-protected-resource.

在游标中使用此MCP(逐步)

  1. 开始一切 (回购根): docker compose up --build --等到 mcp-serverKeycloak、Postgres和Redis都已启动。检查: curl -s http://localhost:3000/health.
  2. 钥匙锁 (一次性):领域 finance,公共客户 mcp-client,有效 重定向URI 对于Cursor的OAuth回调, 直接访问授权 如果你使用 scripts/get-token.sh,具有领域角色的用户 free / premium / analyst.
  3. 光标配置 --合并 docs/cursor-mcp.example.json 进入 ~/.cursor/mcp.json那么 重新加载MCP (命令选项板→ MCP:重新加载/重新启动光标)。
  4. OAuth流程 --光标打开Keycloak(或显示登录步骤),您登录;游标存储令牌并发送 Authorization: Bearer … 在每个 /mcp 请求。然后 初始化 通过Streamable HTTP运行(稍后请求的标头中的会话id)。
  5. 聊天中 --使用以下工具 pingget_stock_quote 当主持人列出它们时;您不会将JWT粘贴到提示中。

如果日志仍然显示 invalid_union

这意味着游标已解析 JSON不是JSON-RPC 2.0 (例如OAuth错误体、Fastify 404 JSON或非-data: SSE线)。如果你也看到 “正在恢复…成功列出产品后连接”,客户经常 恢复 工具仍然有效。

我们修好了 Method not found 为了 prompts / resources:用于做广告的服务器 promptsresources 未实施 prompts/listresources/list。它现在做广告 仅限工具 (server/src/mcp/serverFactory.ts). 重建 拉动更改后: docker compose up --build.

Docker说明

AUTH_SERVER_URL公共 发行人(http://localhost:8080/realms/finance)以及 KEYCLOAK_INTERNAL_URLhttp://keycloak:8080/realms/finance 所以JWKS是从内部工作的 mcp-server 集装箱。

项目布局

目录标签

目录标签

金融数据TypeScriptCursor本地部署OAuth角色访问印度市场

支持客户端

Cursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP