Metadata-Version: 2.4
Name: tsurugi-python-mcp-tools
Version: 0.1.0
Summary: MCP server tools for Tsurugi using tsubakuro-rust-python
Author: septigram
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/septigram/tsurugi-python-mcp-tools
Project-URL: Repository, https://github.com/septigram/tsurugi-python-mcp-tools
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fastmcp>=3.2.4
Requires-Dist: tsurugi-dbapi>=0.9.0
Dynamic: license-file

# tsurugi-python-mcp-tools

`tsurugi-python-mcp-tools` は、Tsurugi RDBMS を MCP ツールとして利用するための Python 製 MCP サーバです。  
Java版の [tsurugi-mcp-server](https://github.com/project-tsurugi/tsurugi-mcp-server) を参考に作成しています。
内部で [tsurugi-dbapi](https://pypi.org/project/tsurugi-dbapi/) を利用し、[fastmcp](https://pypi.org/project/fastmcp/) により HTTP transport の MCP サーバを提供します。

## 主な機能

- DDL 実行（`executeDdl`: `CREATE` / `DROP`）
- DML 実行（`update`: `INSERT` / `UPDATE` / `DELETE`）
- SELECT 実行（`query`、`WITH` 句許可、`WITH RECURSIVE` は非対応）
- テーブルメタデータ取得（`getTableMetadata`）
- テーブル名一覧取得（`listTableNames`）
- SQL 入力の基本バリデーションとエラーハンドリング（`ToolInputError` / `ToolExecutionError`）

## 動作要件

- Python 3.10 以上
- 依存パッケージ: `fastmcp`, `tsurugi-dbapi`
- 接続先に Tsurugi RDBMS が起動していること

## 主な設定（環境変数）

- `TSURUGI_ENDPOINT`（必須）: 例 `tcp://localhost:12345`
- `TSURUGI_DEFAULT_TIMEOUT`（任意、既定値 `30`）
- `TSURUGI_AUTH_TOKEN`（任意）
- `MCP_HOST`（任意、既定値 `127.0.0.1`）
- `MCP_PORT`（任意、既定値 `8000`）
- `MCP_PATH`（任意、既定値 `/mcp`）

## 起動方法

```powershell
.\wenv\Scripts\python -m tsurugi_python_mcp_tools
```

`pip install` 後は、コンソールコマンドでも起動できます。

```powershell
tsurugi-mcp
```

認証方式は起動オプションで明示指定できます。

- `--user <user> --password <password>`
- `--auth-token <auth-token>`
- `--credentials <path-to-credential-file>`
- `--no-auth`

また、`--enable-tools` で実行可能ツールを制限でき、`--resource` / `--prompt` で resource/prompt 提供の有効・無効を制御できます。

### mcp.jsonの例

```json
{
    "mcpServers": {
        "tsurugi-python-mcp-tools": {
            "type": "http",
            "url": "http://localhost:8000/mcp"
        }
    }
}
```

## ライセンス

本プロジェクトは [Apache License 2.0](LICENSE) の下で提供されています。  
詳細は `LICENSE` ファイルを参照してください。

