mcp-feet-master


Namemcp-feet-master JSON
Version 0.1.4 PyPI version JSON
download
home_pageNone
SummaryA Model Context Protocol server for calculating animal feet counts (rabbits and chickens)
upload_time2025-08-04 06:00:51
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords mcp model-context-protocol feet calculation ai-tools
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # MCP feet Master 🐰🐔

[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
[![PyPI version](https://badge.fury.io/py/mcp-feet-master.svg)](https://badge.fury.io/py/mcp-feet-master)

一個專門計算動物腳數的 Model Context Protocol (MCP) 伺服器。解決經典的「兔子和雞」數學問題,讓 AI 模型能夠準確計算農場動物的總腳數。

## ✨ 功能特色

- 🧮 **精確計算**:計算兔子(4腳)和雞(2腳)的總腳數
- 🔄 **反推功能**:根據總腳數推算可能的動物組合
- 📚 **範例資源**:內建計算範例和使用說明
- 📝 **提示模板**:生成標準化的數學問題
- 🔧 **FastMCP**:基於 FastMCP 框架,易於整合

## 🚀 安裝

### 使用 pip 安裝

```bash
pip install mcp-feet-master
```

### 從源碼安裝

```bash
git clone https://github.com/yourusername/mcp-feet-master.git
cd mcp-feet-master
pip install -e .
```

## 📖 使用方法

### 作為 MCP 伺服器運行

```bash
mcp-feet-master
```

或者在 Python 中:

```python
from mcp_feet_master import create_server

server = create_server()
server.run()
```

### 與 Claude Desktop 整合

在 Claude Desktop 的配置文件中添加:

```json
{
  "mcpServers": {
    "mcp-feet-master": {
      "command": "mcp-feet-master",
      "args": []
    }
  }
}
```

## 🛠️ 可用工具

### 1. `get_foot_num(rabbits, chickens)`

計算兔子和雞的總腳數。

**參數:**
- `rabbits` (int): 兔子數量
- `chickens` (int): 雞的數量

**返回:**
```python
{
    "total_feet": 22,
    "rabbit_feet": 12,
    "chicken_feet": 10,
    "rabbits": 3,
    "chickens": 5,
    "calculation": "3 隻兔子 × 4 腳 + 5 隻雞 × 2 腳 = 22 隻腳",
    "formula": "3 × 4 + 5 × 2 = 22"
}
```

### 2. `calculate_animals_from_feet(total_feet, animal_type)`

根據總腳數反推動物組合。

**參數:**
- `total_feet` (int): 總腳數
- `animal_type` (str): `"rabbits"`, `"chickens"`, 或 `"mixed"`

**範例:**
```python
# 混合動物組合
{
    "total_feet": 20,
    "possible_combinations": [
        {"rabbits": 5, "chickens": 0, "verification": 20},
        {"rabbits": 3, "chickens": 4, "verification": 20},
        {"rabbits": 1, "chickens": 8, "verification": 20},
        {"rabbits": 0, "chickens": 10, "verification": 20}
    ],
    "count": 4
}
```

## 📚 可用資源

### `feet://examples`

獲取使用範例和計算說明。

## 📝 可用提示

### `animal_feet_problem`

生成標準化的動物腳數數學問題。

**參數:**
- `rabbits` (int): 兔子數量
- `chickens` (int): 雞的數量  
- `include_explanation` (bool): 是否包含解釋(預設:true)

## 💡 使用範例

### 與 AI 模型對話範例

**用戶:** "農場裡有 3 隻兔子和 5 隻雞,總共有多少隻腳?"

**AI 模型使用 MCP:** 
```
調用 get_foot_num(3, 5)
結果:22 隻腳 (3 × 4 + 5 × 2 = 12 + 10 = 22)
```

**用戶:** "如果總共有 20 隻腳,可能的動物組合有哪些?"

**AI 模型使用 MCP:**
```
調用 calculate_animals_from_feet(20, "mixed")
可能組合:
- 5 隻兔子 + 0 隻雞
- 3 隻兔子 + 4 隻雞  
- 1 隻兔子 + 8 隻雞
- 0 隻兔子 + 10 隻雞
```

## 🧪 開發

### 安裝開發依賴

```bash
pip install -e ".[dev]"
```

### 運行測試

```bash
pytest tests/
```

### 程式碼格式化

```bash
black src/ tests/
isort src/ tests/
```

### 型別檢查

```bash
mypy src/
```

## 📈 版本歷史

- **0.1.0**: 初始版本
  - 基本的兔子雞腳數計算功能
  - 反推動物組合功能
  - FastMCP 整合

## 🤝 貢獻

歡迎貢獻!請查看 [CONTRIBUTING.md](CONTRIBUTING.md) 了解詳細說明。

1. Fork 專案
2. 創建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 開啟 Pull Request

## 📄 授權

本專案使用 MIT 授權。詳見 [LICENSE](LICENSE) 文件。

## 🔗 相關連結

- [Model Context Protocol 官方文檔](https://modelcontextprotocol.io/)
- [FastMCP 文檔](https://github.com/modelcontextprotocol/python-sdk)
- [專案首頁](https://github.com/yourusername/mcp-feet-master)

## 📞 支援

如果遇到問題或有建議,請:
- 開啟 [GitHub Issue](https://github.com/yourusername/mcp-feet-master/issues)
- 查看 [文檔](https://github.com/yourusername/mcp-feet-master/wiki)

---

**讓 AI 計算動物腳數變得簡單又準確!** 🎯

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mcp-feet-master",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "mcp, model-context-protocol, feet, calculation, ai-tools",
    "author": null,
    "author_email": "ThomasYang <tom19860526@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/9d/5f/7d700ea2fbbe3b5a5172b3e15d7a68b63372cb1b4585efdcfc952c845f79/mcp_feet_master-0.1.4.tar.gz",
    "platform": null,
    "description": "# MCP feet Master \ud83d\udc30\ud83d\udc14\r\n\r\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\r\n[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\r\n[![PyPI version](https://badge.fury.io/py/mcp-feet-master.svg)](https://badge.fury.io/py/mcp-feet-master)\r\n\r\n\u4e00\u500b\u5c08\u9580\u8a08\u7b97\u52d5\u7269\u8173\u6578\u7684 Model Context Protocol (MCP) \u4f3a\u670d\u5668\u3002\u89e3\u6c7a\u7d93\u5178\u7684\u300c\u5154\u5b50\u548c\u96de\u300d\u6578\u5b78\u554f\u984c\uff0c\u8b93 AI \u6a21\u578b\u80fd\u5920\u6e96\u78ba\u8a08\u7b97\u8fb2\u5834\u52d5\u7269\u7684\u7e3d\u8173\u6578\u3002\r\n\r\n## \u2728 \u529f\u80fd\u7279\u8272\r\n\r\n- \ud83e\uddee **\u7cbe\u78ba\u8a08\u7b97**\uff1a\u8a08\u7b97\u5154\u5b50\uff084\u8173\uff09\u548c\u96de\uff082\u8173\uff09\u7684\u7e3d\u8173\u6578\r\n- \ud83d\udd04 **\u53cd\u63a8\u529f\u80fd**\uff1a\u6839\u64da\u7e3d\u8173\u6578\u63a8\u7b97\u53ef\u80fd\u7684\u52d5\u7269\u7d44\u5408\r\n- \ud83d\udcda **\u7bc4\u4f8b\u8cc7\u6e90**\uff1a\u5167\u5efa\u8a08\u7b97\u7bc4\u4f8b\u548c\u4f7f\u7528\u8aaa\u660e\r\n- \ud83d\udcdd **\u63d0\u793a\u6a21\u677f**\uff1a\u751f\u6210\u6a19\u6e96\u5316\u7684\u6578\u5b78\u554f\u984c\r\n- \ud83d\udd27 **FastMCP**\uff1a\u57fa\u65bc FastMCP \u6846\u67b6\uff0c\u6613\u65bc\u6574\u5408\r\n\r\n## \ud83d\ude80 \u5b89\u88dd\r\n\r\n### \u4f7f\u7528 pip \u5b89\u88dd\r\n\r\n```bash\r\npip install mcp-feet-master\r\n```\r\n\r\n### \u5f9e\u6e90\u78bc\u5b89\u88dd\r\n\r\n```bash\r\ngit clone https://github.com/yourusername/mcp-feet-master.git\r\ncd mcp-feet-master\r\npip install -e .\r\n```\r\n\r\n## \ud83d\udcd6 \u4f7f\u7528\u65b9\u6cd5\r\n\r\n### \u4f5c\u70ba MCP \u4f3a\u670d\u5668\u904b\u884c\r\n\r\n```bash\r\nmcp-feet-master\r\n```\r\n\r\n\u6216\u8005\u5728 Python \u4e2d\uff1a\r\n\r\n```python\r\nfrom mcp_feet_master import create_server\r\n\r\nserver = create_server()\r\nserver.run()\r\n```\r\n\r\n### \u8207 Claude Desktop \u6574\u5408\r\n\r\n\u5728 Claude Desktop \u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\u6dfb\u52a0\uff1a\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"mcp-feet-master\": {\r\n      \"command\": \"mcp-feet-master\",\r\n      \"args\": []\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n## \ud83d\udee0\ufe0f \u53ef\u7528\u5de5\u5177\r\n\r\n### 1. `get_foot_num(rabbits, chickens)`\r\n\r\n\u8a08\u7b97\u5154\u5b50\u548c\u96de\u7684\u7e3d\u8173\u6578\u3002\r\n\r\n**\u53c3\u6578\uff1a**\r\n- `rabbits` (int): \u5154\u5b50\u6578\u91cf\r\n- `chickens` (int): \u96de\u7684\u6578\u91cf\r\n\r\n**\u8fd4\u56de\uff1a**\r\n```python\r\n{\r\n    \"total_feet\": 22,\r\n    \"rabbit_feet\": 12,\r\n    \"chicken_feet\": 10,\r\n    \"rabbits\": 3,\r\n    \"chickens\": 5,\r\n    \"calculation\": \"3 \u96bb\u5154\u5b50 \u00d7 4 \u8173 + 5 \u96bb\u96de \u00d7 2 \u8173 = 22 \u96bb\u8173\",\r\n    \"formula\": \"3 \u00d7 4 + 5 \u00d7 2 = 22\"\r\n}\r\n```\r\n\r\n### 2. `calculate_animals_from_feet(total_feet, animal_type)`\r\n\r\n\u6839\u64da\u7e3d\u8173\u6578\u53cd\u63a8\u52d5\u7269\u7d44\u5408\u3002\r\n\r\n**\u53c3\u6578\uff1a**\r\n- `total_feet` (int): \u7e3d\u8173\u6578\r\n- `animal_type` (str): `\"rabbits\"`, `\"chickens\"`, \u6216 `\"mixed\"`\r\n\r\n**\u7bc4\u4f8b\uff1a**\r\n```python\r\n# \u6df7\u5408\u52d5\u7269\u7d44\u5408\r\n{\r\n    \"total_feet\": 20,\r\n    \"possible_combinations\": [\r\n        {\"rabbits\": 5, \"chickens\": 0, \"verification\": 20},\r\n        {\"rabbits\": 3, \"chickens\": 4, \"verification\": 20},\r\n        {\"rabbits\": 1, \"chickens\": 8, \"verification\": 20},\r\n        {\"rabbits\": 0, \"chickens\": 10, \"verification\": 20}\r\n    ],\r\n    \"count\": 4\r\n}\r\n```\r\n\r\n## \ud83d\udcda \u53ef\u7528\u8cc7\u6e90\r\n\r\n### `feet://examples`\r\n\r\n\u7372\u53d6\u4f7f\u7528\u7bc4\u4f8b\u548c\u8a08\u7b97\u8aaa\u660e\u3002\r\n\r\n## \ud83d\udcdd \u53ef\u7528\u63d0\u793a\r\n\r\n### `animal_feet_problem`\r\n\r\n\u751f\u6210\u6a19\u6e96\u5316\u7684\u52d5\u7269\u8173\u6578\u6578\u5b78\u554f\u984c\u3002\r\n\r\n**\u53c3\u6578\uff1a**\r\n- `rabbits` (int): \u5154\u5b50\u6578\u91cf\r\n- `chickens` (int): \u96de\u7684\u6578\u91cf  \r\n- `include_explanation` (bool): \u662f\u5426\u5305\u542b\u89e3\u91cb\uff08\u9810\u8a2d\uff1atrue\uff09\r\n\r\n## \ud83d\udca1 \u4f7f\u7528\u7bc4\u4f8b\r\n\r\n### \u8207 AI \u6a21\u578b\u5c0d\u8a71\u7bc4\u4f8b\r\n\r\n**\u7528\u6236\uff1a** \"\u8fb2\u5834\u88e1\u6709 3 \u96bb\u5154\u5b50\u548c 5 \u96bb\u96de\uff0c\u7e3d\u5171\u6709\u591a\u5c11\u96bb\u8173\uff1f\"\r\n\r\n**AI \u6a21\u578b\u4f7f\u7528 MCP\uff1a** \r\n```\r\n\u8abf\u7528 get_foot_num(3, 5)\r\n\u7d50\u679c\uff1a22 \u96bb\u8173 (3 \u00d7 4 + 5 \u00d7 2 = 12 + 10 = 22)\r\n```\r\n\r\n**\u7528\u6236\uff1a** \"\u5982\u679c\u7e3d\u5171\u6709 20 \u96bb\u8173\uff0c\u53ef\u80fd\u7684\u52d5\u7269\u7d44\u5408\u6709\u54ea\u4e9b\uff1f\"\r\n\r\n**AI \u6a21\u578b\u4f7f\u7528 MCP\uff1a**\r\n```\r\n\u8abf\u7528 calculate_animals_from_feet(20, \"mixed\")\r\n\u53ef\u80fd\u7d44\u5408\uff1a\r\n- 5 \u96bb\u5154\u5b50 + 0 \u96bb\u96de\r\n- 3 \u96bb\u5154\u5b50 + 4 \u96bb\u96de  \r\n- 1 \u96bb\u5154\u5b50 + 8 \u96bb\u96de\r\n- 0 \u96bb\u5154\u5b50 + 10 \u96bb\u96de\r\n```\r\n\r\n## \ud83e\uddea \u958b\u767c\r\n\r\n### \u5b89\u88dd\u958b\u767c\u4f9d\u8cf4\r\n\r\n```bash\r\npip install -e \".[dev]\"\r\n```\r\n\r\n### \u904b\u884c\u6e2c\u8a66\r\n\r\n```bash\r\npytest tests/\r\n```\r\n\r\n### \u7a0b\u5f0f\u78bc\u683c\u5f0f\u5316\r\n\r\n```bash\r\nblack src/ tests/\r\nisort src/ tests/\r\n```\r\n\r\n### \u578b\u5225\u6aa2\u67e5\r\n\r\n```bash\r\nmypy src/\r\n```\r\n\r\n## \ud83d\udcc8 \u7248\u672c\u6b77\u53f2\r\n\r\n- **0.1.0**: \u521d\u59cb\u7248\u672c\r\n  - \u57fa\u672c\u7684\u5154\u5b50\u96de\u8173\u6578\u8a08\u7b97\u529f\u80fd\r\n  - \u53cd\u63a8\u52d5\u7269\u7d44\u5408\u529f\u80fd\r\n  - FastMCP \u6574\u5408\r\n\r\n## \ud83e\udd1d \u8ca2\u737b\r\n\r\n\u6b61\u8fce\u8ca2\u737b\uff01\u8acb\u67e5\u770b [CONTRIBUTING.md](CONTRIBUTING.md) \u4e86\u89e3\u8a73\u7d30\u8aaa\u660e\u3002\r\n\r\n1. Fork \u5c08\u6848\r\n2. \u5275\u5efa\u529f\u80fd\u5206\u652f (`git checkout -b feature/AmazingFeature`)\r\n3. \u63d0\u4ea4\u66f4\u6539 (`git commit -m 'Add some AmazingFeature'`)\r\n4. \u63a8\u9001\u5230\u5206\u652f (`git push origin feature/AmazingFeature`)\r\n5. \u958b\u555f Pull Request\r\n\r\n## \ud83d\udcc4 \u6388\u6b0a\r\n\r\n\u672c\u5c08\u6848\u4f7f\u7528 MIT \u6388\u6b0a\u3002\u8a73\u898b [LICENSE](LICENSE) \u6587\u4ef6\u3002\r\n\r\n## \ud83d\udd17 \u76f8\u95dc\u9023\u7d50\r\n\r\n- [Model Context Protocol \u5b98\u65b9\u6587\u6a94](https://modelcontextprotocol.io/)\r\n- [FastMCP \u6587\u6a94](https://github.com/modelcontextprotocol/python-sdk)\r\n- [\u5c08\u6848\u9996\u9801](https://github.com/yourusername/mcp-feet-master)\r\n\r\n## \ud83d\udcde \u652f\u63f4\r\n\r\n\u5982\u679c\u9047\u5230\u554f\u984c\u6216\u6709\u5efa\u8b70\uff0c\u8acb\uff1a\r\n- \u958b\u555f [GitHub Issue](https://github.com/yourusername/mcp-feet-master/issues)\r\n- \u67e5\u770b [\u6587\u6a94](https://github.com/yourusername/mcp-feet-master/wiki)\r\n\r\n---\r\n\r\n**\u8b93 AI \u8a08\u7b97\u52d5\u7269\u8173\u6578\u8b8a\u5f97\u7c21\u55ae\u53c8\u6e96\u78ba\uff01** \ud83c\udfaf\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Model Context Protocol server for calculating animal feet counts (rabbits and chickens)",
    "version": "0.1.4",
    "project_urls": {
        "Homepage": "https://github.com/yourusername/mcp-feet-master",
        "Issues": "https://github.com/yourusername/mcp-feet-master/issues",
        "Repository": "https://github.com/yourusername/mcp-feet-master"
    },
    "split_keywords": [
        "mcp",
        " model-context-protocol",
        " feet",
        " calculation",
        " ai-tools"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b52ce1779f63feb1bbef1a11cd02526297fb93e941ef45eee263ad5294f8a52c",
                "md5": "6f3041d20aac958b9ea371c941ab96c0",
                "sha256": "92acc6963414705f93abf5300a72b1dc9bf8ebf9920ab5ebb54bc85b4f7c6be0"
            },
            "downloads": -1,
            "filename": "mcp_feet_master-0.1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6f3041d20aac958b9ea371c941ab96c0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 7496,
            "upload_time": "2025-08-04T06:00:50",
            "upload_time_iso_8601": "2025-08-04T06:00:50.127636Z",
            "url": "https://files.pythonhosted.org/packages/b5/2c/e1779f63feb1bbef1a11cd02526297fb93e941ef45eee263ad5294f8a52c/mcp_feet_master-0.1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9d5f7d700ea2fbbe3b5a5172b3e15d7a68b63372cb1b4585efdcfc952c845f79",
                "md5": "cdc54eaf0e4028fcdabfcd47c12deebd",
                "sha256": "5b48674d4e0aace821d3f28cebc21a6811b7f0958e1845dd9a104eb8e1ca0dec"
            },
            "downloads": -1,
            "filename": "mcp_feet_master-0.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "cdc54eaf0e4028fcdabfcd47c12deebd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 12498,
            "upload_time": "2025-08-04T06:00:51",
            "upload_time_iso_8601": "2025-08-04T06:00:51.431772Z",
            "url": "https://files.pythonhosted.org/packages/9d/5f/7d700ea2fbbe3b5a5172b3e15d7a68b63372cb1b4585efdcfc952c845f79/mcp_feet_master-0.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-04 06:00:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yourusername",
    "github_project": "mcp-feet-master",
    "github_not_found": true,
    "lcname": "mcp-feet-master"
}
        
Elapsed time: 0.91575s