Toshl MCP服务器
用于集成的MCP(模型上下文协议)服务器 移动理财师 AI代理。
概述
Toshl MCP服务器提供了人工智能代理和Toshl Finance API之间的桥梁。它允许人工智能代理访问Toshl的财务数据,对其进行分析,并根据数据提供见解和建议。
特性
- 阅读Toshl Finance API端点的访问权限:
- 账户 - 分类 - 标签 - 预算 - 用户信息 - 规划
- MCP资源:
- 列出帐户 - 获取帐户详细信息 - 列出类别 - 获取类别详细信息 - 列表标记 - 获取标签详细信息 - 列出预算 - 获取预算详细信息 - 获取预算历史记录 - 获取用户资料 - 获取帐户摘要 - 输入序列
- MCP工具:
- 帐户工具(列出帐户,获取帐户详细信息) - 类别工具(列出类别,获取类别详细信息) - 标签工具(列出标签,获取标签详细信息) - 预算工具(列出预算、获取预算详细信息、获取预算历史记录) - 用户工具(获取个人资料、获取摘要、获取付款类型、获取付款) - 条目工具(列出条目、获取条目详细信息、获取条目总和、获取条目时间线、创建条目、更新条目、删除条目、管理条目) - 分析工具(按类别分析支出、分析预算执行情况、分析账户余额)
先决条件
- Node.js(v18.x或更高版本)
- npm(v8.x或更高版本)
- Toshl Finance API代币
获取API令牌
- 首选https://developer.toshl.com/apps/
- 创建新的个人令牌。在“描述”下插入令牌名称,在“密码”下插入您的帐户密码
安装
- 克隆存储库:
git clone https://github.com/yourusername/toshl-mcp-server.git
cd toshl-mcp-server- 安装依赖项:
npm install- 创建一个
.env文件基于.env.example文件:
cp .env.example .env- 编辑
.env文件并添加您的Toshl API令牌:
TOSHL_API_TOKEN=your_api_token建筑
构建项目:
npm run build跑步
启动服务器:
npm start配置MCP服务器
"toshl-mcp-server": {
"command": "node",
"args": [
"/root/source/personal/toshl-mcp-server/dist/index.js"
],
"env": {
"TOSHL_API_TOKEN": "your-token",
"TOSHL_API_BASE_URL": "https://api.toshl.com",
"MCP_SERVER_NAME": "toshl-mcp-server",
"MCP_SERVER_VERSION": "0.1.0",
"CACHE_TTL": "3600",
"CACHE_ENABLED": "true",
"LOG_LEVEL": "debug"
},
"disabled": false,
"autoApprove": []
}发展
在开发模式下运行服务器:
npm run dev文档
项目结构
toshl-mcp-server/
├── src/
│ ├── index.ts # Entry point
│ ├── server/ # MCP server implementation
│ │ └── server.ts # Main server class
│ ├── api/ # Toshl API client
│ │ ├── toshl-client.ts # Base API client
│ │ ├── auth.ts # Authentication module
│ │ └── endpoints/ # Endpoint-specific clients
│ │ ├── accounts.ts # Accounts API client
│ │ ├── categories.ts # Categories API client
│ │ ├── tags.ts # Tags API client
│ │ ├── budgets.ts # Budgets API client
│ │ ├── entries.ts # Entries API client
│ │ ├── me.ts # User API client
│ │ └── planning.ts # Planning API client
│ ├── resources/ # MCP resource handlers
│ │ ├── account-resources.ts # Account resources
│ │ ├── category-resources.ts# Category resources
│ │ ├── tag-resources.ts # Tag resources
│ │ ├── budget-resources.ts # Budget resources
│ │ └── user-resources.ts # User resources
│ ├── tools/ # MCP tool handlers
│ │ ├── account-tools.ts # Account tools
│ │ ├── category-tools.ts # Category tools
│ │ ├── tag-tools.ts # Tag tools
│ │ ├── budget-tools.ts # Budget tools
│ │ ├── user-tools.ts # User tools
│ │ └── analysis-tools.ts # Financial analysis tools
│ └── utils/ # Utility functions
│ ├── cache.ts # Caching utilities
│ ├── error-handler.ts # Error handling utilities
│ ├── logger.ts # Logging utilities
│ └── types.ts # TypeScript type definitions
├── dist/ # Compiled JavaScript files
├── .env # Environment variables
├── .env.example # Example environment variables
├── package.json # Project dependencies
├── tsconfig.json # TypeScript configuration
└── README.md # Project documentation配置
可以使用环境变量配置服务器:
TOSHL_API_TOKEN:您的Toshl API代币TOSHL_API_BASE_URL:Toshl API的基本URL(默认值:https://api.toshl.com)MCP_SERVER_NAME:MCP服务器的名称(默认:toshl MCP服务器)MCP_SERVER_VERSION:MCP服务器的版本(默认值:0.1.0)CACHE_TTL:缓存数据的生存时间(秒)(默认值:3600)CACHE_ENABLED:是否启用缓存(默认值:true)LOG_LEVEL:日志记录级别(默认值:info)
许可证
麻省理工学院
