eudic-mcp
by safeblood
README.md
# Eudic MCP Server
欧路词典(Eudic)生词本 API 的 [Model Context Protocol](https://modelcontextprotocol.io/) 封装。
支持 Claude Desktop、Cursor、Kimi Code 等兼容 MCP 的客户端直接管理 Eudic 生词本分组与单词。
## 功能
- 列出/创建/重命名/删除生词本分组
- 列出/添加/删除生词本中的单词
- 批量导入单词
- 查询已掌握单词
- 管理单词笔记(增删改查)
- 获取用户例句列表
## 安装
### 从 PyPI 安装(暂未发布)
```bash
pip install eudic-mcp
```
### 从源码安装
```bash
git clone https://github.com/safeblood/eudic-mcp.git
cd eudic-mcp
pip install -e .
```
### 不安装,直接运行源码
如果你不想安装到系统 Python,可以设置 `PYTHONPATH` 指向项目目录:
```bash
export PYTHONPATH="/path/to/eudic-mcp"
python -m eudic_mcp.server
```
## 配置
需要欧路词典 OpenAPI Token。获取方式见 [Eudic OpenAPI 文档](https://my.eudic.net/OpenAPI/doc_api_study)。
**注意**:Token 只填 `NIS` 后面的字符串部分,不要带 `NIS ` 前缀。本客户端会自动拼上 `NIS `。
```bash
# 错误
export EUDIC_API_TOKEN="NIS xxxx"
# 正确
export EUDIC_API_TOKEN="xxxx"
```
Windows PowerShell:
```powershell
$env:EUDIC_API_TOKEN="xxxx"
```
## 在 Kimi Code 中使用
编辑 Kimi Code 的 MCP 配置文件:
- Windows: `C:\Users\<用户名>\.kimi-code\mcp.json`
- macOS/Linux: `~/.kimi-code/mcp.json`
添加或替换 `eudic` server:
```json
{
"mcpServers": {
"eudic": {
"command": "python",
"args": [
"-m",
"eudic_mcp.server"
],
"env": {
"PYTHONPATH": "C:/Users/83773/Downloads/pte/eudic-mcp",
"EUDIC_API_TOKEN": "你的token"
}
}
}
}
```
修改后**重启 Kimi Code** 生效。
## 在 Claude Desktop 中使用
编辑 `claude_desktop_config.json`:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
### 已安装包
```json
{
"mcpServers": {
"eudic": {
"command": "eudic-mcp",
"env": {
"EUDIC_API_TOKEN": "你的token"
}
}
}
}
```
### 直接运行源码
```json
{
"mcpServers": {
"eudic": {
"command": "python",
"args": [
"-m",
"eudic_mcp.server"
],
"env": {
"PYTHONPATH": "C:/Users/83773/Downloads/pte/eudic-mcp",
"EUDIC_API_TOKEN": "你的token"
}
}
}
}
```
## 可用工具
| 工具名 | 说明 |
| --- | --- |
| `eudic_list_categories` | 列出所有生词本分组 |
| `eudic_create_category` | 创建分组 |
| `eudic_rename_category` | 重命名分组 |
| `eudic_delete_category` | 删除分组 |
| `eudic_list_words` | 列出分组单词 |
| `eudic_add_word` | 添加单个单词 |
| `eudic_add_words_bulk` | 批量导入单词 |
| `eudic_delete_words` | 批量删除单词 |
| `eudic_get_word` | 查询单个单词 |
| `eudic_list_mastered_words` | 查询已掌握单词 |
| `eudic_list_notes` | 获取所有单词笔记 |
| `eudic_get_note` | 获取某个单词的笔记 |
| `eudic_add_note` | 添加或更新单词笔记 |
| `eudic_delete_note` | 删除单词笔记 |
| `eudic_list_sentences` | 获取用户例句列表 |
## 工具调用示例
### 创建生词本分组
```json
{
"name": "wfd",
"language": "en"
}
```
返回示例:
```json
{
"data": {
"id": "132314173819830130",
"language": "en",
"name": "wfd"
},
"message": ""
}
```
### 批量导入单词
```json
{
"words": ["hypothesis", "methodology", "empirical"],
"category_id": "132314173819830130",
"language": "en"
}
```
### 添加单个单词(带语境)
```json
{
"word": "hypothesis",
"category_ids": ["132314173819830130"],
"star": 3,
"context_line": "This hypothesis needs more evidence.",
"language": "en"
}
```
### 列出分组单词
```json
{
"category_id": "132314173819830130",
"page": 0,
"page_size": 100,
"language": "en"
}
```
### 添加/更新单词笔记
```json
{
"word": "hypothesis",
"note": "假设;假说。注意与 assumption 区分。",
"language": "en"
}
```
### 获取单词笔记
```json
{
"word": "hypothesis",
"language": "en"
}
```
### 删除单词笔记
```json
{
"word": "hypothesis",
"language": "en"
}
```
### 列出用户例句
```json
{
"language": "en",
"page": 0,
"page_size": 100
}
```
## 作为 Python 库使用
```python
from eudic_mcp import create_category, add_words_bulk
cat = create_category("wfd")
cat_id = cat["data"]["id"]
add_words_bulk(["hypothesis", "methodology"], category_id=cat_id)
```
## 开发
```bash
cd eudic-mcp
pip install -e .
# 手动启动 server
EUDIC_API_TOKEN="你的token" eudic-mcp
```
## 依赖
- Python >= 3.10
- `mcp>=1.0.0`
- `requests>=2.28.0`
## License
MIT
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues