> Source: https://ashareapi.com/en/docs/guides/today-mcp/  ·  Markdown version for LLMs / AI agents

Guide

# A-Share Data in Today
 Connect A-share data inside Today with a custom MCP server: set it up on your phone, with no desktop and no SDK. Configure once, then ask for quotes, financials and K-lines.

## The short version: it runs from your phone
 Today is a cloud personal agent and supports custom MCP servers. Our MCP endpoint is a remote Streamable HTTP server, so there is no local process, port or Python environment to run.
 You only need the Today app and an ashareapi key. No computer required.

-
 Transport: Streamable HTTP

-
 Auth: Bearer Token

-
 URL: `https://api.ashareapi.com/mcp`

-
 No localhost, local MCP process or port forwarding

## Before you start

-
 Install and sign in to Today (iOS, Android or Mac)

-
 Create an ashareapi API key; use a separate read-only key for Today

-
 Verify the key with `GET /v1/quote?code=sh600519`

## Connect Today in four steps
 Open **Settings → Connected apps → + Add custom MCP**. Use **Add via link**, then choose the authentication method on the next screen.

-
 **Step 1**: open Settings, then Connected apps.

-
 **Step 2**: tap `+`, then Add custom MCP.

-
 **Step 3**: choose Add via link, enter `https://api.ashareapi.com/mcp`, accept the risk notice and tap Next.

-
 **Step 4**: name it `ashareapi`, choose `Bearer token`, paste only the API key, then tap Add.

 Do not type `Bearer` into the token field when Bearer is already selected, or the header becomes `Bearer Bearer sk-...`.

## Verify: list tools, then ask three questions
 After adding the server, Today should discover the tool list. Confirm `ashare_quote`, `ashare_finance` and `ashare_kline` are present, then test the data path.

 Ask inside Today
```
Get the latest quote for 600519

Get 600519 revenue for 2026Q3

Show the last 30 daily K-lines for 600519
```

-
 Quote fails: use the market prefix, such as `sh600519`, not a bare `600519`.

-
 Financials fail: confirm the key tier includes financial endpoints and ask for a specific period.

-
 K-lines fail: keep `count` within the per-request cap and fetch in batches if needed.

## 401 or no tools: what to check
 |
| | Symptom | Check first | Fix

| | 401 Unauthorized | Wrong token or duplicated Bearer | Paste only the key, or try `Bearer `

| | No tools | Wrong host | Use `api.ashareapi.com`, not `ashareapi.com`

| | Connection fails | Trailing slash / gateway | Try `https://api.ashareapi.com/mcp/`

| | Client cannot set headers | Auth limitation | Fallback: `https://api.ashareapi.com/mcp?key= `

| | Tool timeout | Result too large | Lower `count` / `limit` / `num`, or batch

 401 Unauthorized
 Wrong token or duplicated Bearer
 Paste only the key, or try `Bearer `

 No tools
 Wrong host
 Use `api.ashareapi.com`, not `ashareapi.com`

 Connection fails
 Trailing slash / gateway
 Try `https://api.ashareapi.com/mcp/`

 Client cannot set headers
 Auth limitation
 Fallback: `https://api.ashareapi.com/mcp?key= `

 Tool timeout
 Result too large
 Lower `count` / `limit` / `num`, or batch

 The query-key fallback can appear in logs. Prefer Bearer whenever the client supports headers.

## What it can and cannot do

-
 ✅ Quotes, K-lines, financials, fund flow, dragon-tiger lists, sectors, ETFs, convertible bonds and macro data

-
 ✅ Turn retrieved data into tables, summaries and comparisons

-
 ⛔ No automated trading, brokerage connection or return promises

-
 ⛔ Not investment advice; explain data by its actual date and definition

-
 ⛔ Never fill missing fields with zero or present an old close as a live quote

## Which tier: start free, upgrade when needed
 Quote and K-line checks can start on the free tier. Financials, batch calls, screening and research endpoints need a higher tier. Prices below are a Today-specific recommendation; see the [full pricing page](/en/pricing) for the authoritative list.
 |
| | Tier | Price | Quota | Best for Today

| | Trial | **¥9.9 one-time** | 10k calls · 30 req/min · 24 endpoints | Financials, dividends, sectors; light personal research

| | Standard | **¥29.9 one-time** | 100k calls · 120 req/min · 46 endpoints | Daily research, notices, fund flow and more

| | Pro | **¥99 one-time** | 500k calls · 300 req/min · 80 endpoints | Screening, batch financials, agent research

| | Institutional | **¥199/month** | 100k/day · 600 req/min · 96 endpoints | Teams, multiple IPs, institutional research

 Trial
 **¥9.9 one-time**
 10k calls · 30 req/min · 24 endpoints
 Financials, dividends, sectors; light personal research

 Standard
 **¥29.9 one-time**
 100k calls · 120 req/min · 46 endpoints
 Daily research, notices, fund flow and more

 Pro
 **¥99 one-time**
 500k calls · 300 req/min · 80 endpoints
 Screening, batch financials, agent research

 Institutional
 **¥199/month**
 100k/day · 600 req/min · 96 endpoints
 Teams, multiple IPs, institutional research

 **Connect the free tools first**, then upgrade when you need financials, batch K-lines or screening:
 [¥9.9 Trial](/en/pricing/trial) · [¥29.9 Standard](/en/pricing/standard) · [¥99 Pro](/en/pricing/pro) · [Institutional](/en/pricing/unlimited) · [Full pricing](/en/pricing)
 Today handles the conversation and task orchestration; ashareapi supplies the data. Every number in an answer should trace back to an API field, not model memory.

## FAQ
 Do I really not need a computer?
 Correct. Today and the MCP server run in the cloud. You configure the connection in the mobile app; no local service, port or Python environment is needed.

 Do I paste the key or `Bearer `?
 When the auth type is Bearer token, the token field usually expects only the key. If the client rejects it, try `Bearer `.

 Why is the price not live today?
 Check the returned `date` first. On a market holiday, during a suspension or when upstream data is delayed, the latest bar may not be today. Do not call an old close a live quote.

 Can I try it for free?
 You can test the free tools first. Financial and K-line endpoints need the matching key tier; see `/pricing` for limits and billing.

 Can I use other personal agents?
 The same remote MCP pattern works with clients that support custom MCP servers. Each client has its own entry and auth fields; the Today flow above is verified against the current app UI.

 Last updated: 2026-10-31
 Today entry verified against the 2026-10-31 app UI (Settings → Connected apps → Add custom MCP → Add via link → Bearer token); MCP URL and Bearer auth follow the live ashareapi MCP endpoint and `mcp_remote.py`; quote/financial/K-line fields follow the actual API responses.

 Related

-
[MCP overview](/en/mcp)

-
[Pricing and limits](/en/pricing)

-
[Quote fields](/en/docs/endpoints/quote)

-
[Errors and rate limits](/en/docs/errors)

 [← All tutorials](/en/docs/guides)
