AKShare MCP 서버
AKShare 라이브러리를 사용하여 재무 데이터 분석 기능을 제공하는 MCP(Model Context Protocol) 서버입니다.
특징
- AKShare를 통해 중국 및 글로벌 금융 시장 데이터에 접근하세요
- MCP 프로토콜을 통한 Claude Desktop과 통합
- 다양한 재무 데이터 쿼리 및 분석 지원
설치
uv 사용(권장)
지엑스피1
pip 사용하기
# Clone the repository
git clone https://github.com/yourusername/akshare_mcp_server.git
cd akshare_mcp_server
# Create and activate a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -e .
용법
서버 실행
# Activate the virtual environment
source venv/bin/activate # On Windows: venv\Scripts\activate
# Run the server
python run_server.py
Claude Desktop과 통합
- Claude Desktop 구성에 다음 구성을 추가하세요.
"mcpServers": {
"akshare-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/akshare_mcp_server",
"run",
"akshare-mcp"
],
"env": {
"AKSHARE_API_KEY": "<your_api_key_if_needed>"
}
}
}
- Claude Desktop을 다시 시작하세요
- 사용 가능한 도구에서 AKShare MCP 서버를 선택하세요
사용 가능한 도구
AKShare MCP 서버는 다음과 같은 도구를 제공합니다.
- 주식 데이터 쿼리
- 펀드 데이터 쿼리
- 채권 데이터 쿼리
- 선물 데이터 쿼리
- 외환 데이터 쿼리
- 거시경제 데이터 쿼리
- 그리고 더 많은 것...
새 도구 추가
MCP 서버에 새 도구를 추가하려면 다음 단계를 따르세요.
src/mcp_server_akshare/api.py
에 새로운 API 함수를 추가합니다 .async def fetch_new_data_function(param1: str, param2: str = "default") -> List[Dict[str, Any]]:
"""
Fetch new data type.
Args:
param1: Description of param1
param2: Description of param2
"""
try:
df = ak.akshare_function_name(param1=param1, param2=param2)
return dataframe_to_dict(df)
except Exception as e:
logger.error(f"Error fetching new data: {e}")
raise
src/mcp_server_akshare/server.py
의 열거형에 새 도구를 추가합니다 .class AKShareTools(str, Enum):
# Existing tools...
NEW_TOOL_NAME = "new_tool_name"
src/mcp_server_akshare/server.py
에 새 함수를 가져옵니다 .from .api import (
# Existing imports...
fetch_new_data_function,
)
handle_list_tools()
함수에 도구 정의를 추가합니다 .types.Tool(
name=AKShareTools.NEW_TOOL_NAME.value,
description="Description of the new tool",
inputSchema={
"type": "object",
"properties": {
"param1": {"type": "string", "description": "Description of param1"},
"param2": {"type": "string", "description": "Description of param2"},
},
"required": ["param1"], # List required parameters
},
),
handle_call_tool()
함수에 도구 핸들러를 추가합니다 .case AKShareTools.NEW_TOOL_NAME.value:
param1 = arguments.get("param1")
if not param1:
raise ValueError("Missing required argument: param1")
param2 = arguments.get("param2", "default")
result = await fetch_new_data_function(
param1=param1,
param2=param2,
)
- 서버를 실행하고 새 도구에 요청을 보내 새 도구를 테스트합니다 .
개발
# Install development dependencies
uv pip install -e ".[dev]"
# Run tests
pytest
도커
Docker를 사용하여 서버를 실행할 수도 있습니다.
# Build the Docker image
docker build -t akshare-mcp-server .
# Run the Docker container
docker run -p 8000:8000 akshare-mcp-server
특허
MIT