AKShare について
AKShare MCP は、AKShare の 1000 を超える中国市場データ関数をセルフホスト可能な MCP サーバーとして提供します。固定のデータソース一覧を使わず、モデルが関数を検索し、シグネチャを確認して直接呼び出せます。SSE 方式で動作し、Docker でデプロイします。
主な機能
- 01キーワードによる AKShare 関数の検索
- 02関数のシグネチャと引数の確認
- 03指定した AKShare 関数の呼び出し
- 041 回の呼び出しで返す最大行数の制限
活用シーン
- 01龍虎榜や株主、研究レポートなど中国市場データの照会
- 02社内ネットワークに配置し Hunter などのツールから接続
- 03行数を制限してモデルのコンテキストを抑制
MCP 対応
MCP サーバーであり、SSE エンドポイント経由で akshare_search、akshare_signature、akshare_call の 3 つのツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | |
| keyword | string | はい |
詳細
AKShare MCP
AKShare を自分で実行する機能にして、Hunter に接続します。
「データソース」ではない理由
データソースのモデルでは、1 件のレコードは (市場、データの種類、インターフェースのアドレス) です。
AKShare には1,000 を超える関数があります。龍虎榜、上位 10 株主、証券会社の調査レポート、コーポレートガバナンス、南向き資金、マクロ、先物、ファンドなどです。データソースとしてモデル化すると、1,000 件以上を列挙しなければならず、現実的ではありません。
Hunter ではこれまで、その中から 6 件だけを選んでディレクトリに登録していました。しかし、その 6 件は私たちに必要なものであって、あなたに必要なものとは限りません。「北向き資金の保有明細」を調べたいのに、私たちが選んでいなければ、どうすることもできません。
機能に切り替えると、モデルは 3 つのツールを受け取り、自分で探して、自分で呼び出せます。
akshare_search("龙虎榜") → 有哪些函数能查这个?
akshare_signature("stock_lhb_detail_em") → 它要什么参数?
akshare_call("stock_lhb_detail_em", {...}) → 调它
私たちが事前に列挙しておく必要はありません。
自分で実行する理由
AKShare は Python ライブラリであり、HTTP サービスではないため、フォームに URL を入力することはできません。また、多くのインターフェースの接続先は中国国内にあり、国外のコンテナから直接接続しても、つながらないことがよくあります。
起動する
cd tools/akshare-mcp
docker build -t akshare-mcp .
docker run -d -p 8931:8931 --name akshare-mcp akshare-mcp
イメージは約 1.5G です(AKShare 自体が pandas/lxml/beautifulsoup4 など多数のライブラリを必要とします)。初回のビルドには数分かかります。
動作確認:
curl -N http://localhost:8931/sse
# 有 SSE 流出来就是起来了(它不会自己结束,Ctrl-C 退出)
Hunter に接続する
「機能」→ ツールを接続 → 次のように入力します。
| フィールド | 値 |
|---|---|
| トランスポート方式 | sse |
| アドレス | http://あなたのアドレス:8931/sse |
| キーが必要 | チェックしない |
Hunter が Docker 内で動作している場合、localhost は Hunter 自身のコンテナを指します。ホストマシンのアドレス(Linux では 172.17.0.1、Docker Desktop では host.docker.internal)を入力するか、2 つのサービスを同じ compose ネットワークに配置してください。
⚠️ **Hunter 公式のアドレスは入力しないでください。**このサービスは、私たちに依存せずに利用できるようにするためのものです。
環境変数
| 変数 | デフォルト | 説明 |
|---|---|---|
AKSHARE_MCP_HOST | 0.0.0.0 | リッスンアドレス |
AKSHARE_MCP_PORT | 8931 | ポート |
AKSHARE_MAX_ROWS | 200 | 1 回の応答で返す最大行数 |
AKSHARE_MAX_ROWS は大きくしすぎないでください。AKShare のインターフェースには、1 回で数万行を返すものもあります。そのままモデルのコンテキストに入れると、本当に役立つ情報が押し出されてしまいます。切り詰められた場合は、応答にその旨が明示されます。すべてのデータが返されたかのように見せることはありません。
セキュリティ
akshare_call で呼び出せるのは、akshare モジュール内の公開された呼び出し可能な属性のみです。
_で始まる名前は拒否されます.を含むもの(サブモジュールへのアクセス)は拒否されます- 存在しない属性、または呼び出し不可能な属性は拒否されます
eval/exec/動的 import は行いません
汎用的なコード実行の入り口ではありません。
**ただし、インターネットに公開しないでください。**このサービスには認証がなく、AKShare はサードパーティのサイトにリクエストを送信します。つまり、インターネット上の誰もがあなたのマシンを使ってリクエストを送信できてしまいます。社内ネットワークにバインドするか、認証付きのリバースプロキシを追加してください。
よくある質問
呼び出しがタイムアウトする/接続が拒否される AKShare のインターフェースの接続先の多くは中国国内にあります。このマシンが国外にある場合、ほとんどのインターフェースは失敗します。中国国内のマシンで実行するか、コンテナにプロキシを設定してください。
関数名が見つからない
AKShare の名前には英語の略称が多く、当てずっぽうではいつまでも失敗します。龍虎榜は stock_dragon_tiger ではなく、stock_lhb_detail_em です。まず akshare_search を実行してから、akshare_call を実行してください。
返される列名が中国語 AKShare の返す内容をそのまま返しています。列名は変更していません。変更すると、AKShare のドキュメントと照合できなくなるためです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。