c

custom_mcp

@taka-yayoi/custom_mcp
0 Stars 55 次浏览 taka-yayoi 更新于 2026-08-23

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "databricks-custom-mcp": {
      "transport": "http",
      "url": "https://your-databricks-app-url.com"
    }
  }
}

服务介绍

Databricks Apps上MCP

Databricks Apps上MCP (Model Context Protocol) 構築実装LLMClaudeCursor等呼出可能2提供

提供

  1. get_stock_info: TSE東京証券取引所株式情報取得
  2. run_query_on_databricks: Databricks SQLSQL実行

構成

custom_mcp/
 app.py              # MCP
 main.py             # Uvicorn
 app.yaml            # Databricks Apps設定
 databricks.yml      # Databricks設定
 requirements.txt    # Python依存関係
 README.md           # 

必要環境

  • Python 3.11以上
  • Databricks CLI
  • Databricks権限

開発環境

  1. 仮想環境作成有効化
python3 -m venv .venv
source .venv/bin/activate  # Windows場合: .venv\Scripts\activate
  1. 依存関係
pip install -r requirements.txt
  1. 起動
python main.py

http://localhost:8000 起動


curl http://localhost:8000/health

Databricks Apps

前提条件

  • Databricks CLI
  • Databricks認証済
  • SQL作成

手順

  1. app.yaml設定

app.yaml``WAREHOUSE_ID環境変数使用SQLID設定

command: ["python", "main.py"]
env:
  - name: 'WAREHOUSE_ID'
    value: 'your-warehouse-id-here'
  1. Databricks Apps
databricks apps deploy
  1. 確認
databricks apps list

URL確認

LLM利用

Claude Desktop / Cursor 設定例

MCP設定claude_desktop_config.json``cursor_config.json以下追加

{
  "mcpServers": {
    "databricks-custom-mcp": {
      "url": "https://your-databricks-app-url.com",
      "transport": "http"
    }
  }
}

使用例

LLM以下指示呼出

自動車7203株価情報教
SQL "SELECT * FROM catalog.schema.table LIMIT 10" 実行

問題解決方法

1. 呼出

問題: LLMMCP認識表示

原因:

  • @mcp.tool()``name指定
  • MCP間違/mcp``/

解決方法:

#  間違方法
@mcp.tool(name="tool_name", description="...")
def my_tool():
    pass

app.mount("/mcp", mcp_app)  #  

#  正方法
@mcp.tool()
def my_tool():
    """説明docstring記載"""
    pass

app.mount("/", mcp_app)  #  

2. FastMCP object has no attribute 'app'

問題: app = mcp.app``app = mcp.http_app()発生

解決方法: FastMCP以下方法ASGI作成

#  正方法
mcp_app = mcp.streamable_http_app()
app = FastAPI(lifespan=lambda _: mcp.session_manager.run())
app.mount("/", mcp_app)

3. ModuleNotFoundError: No module named 'custom_server'

問題: 見

原因: 構造複雑src/custom_server入子構造

解決方法: 構造main.py``app.py同配置

4. DataFrame返

問題: run_query_on_databrickspandas DataFrame直接返

解決方法: 文字列変換返

@mcp.tool()
def run_query_on_databricks(sql_query: str):
    # ... 実行 ...
    df = pd.DataFrame(rows, columns=[...])
    return df.to_string()  #  文字列変換

5. Uvicornreload起動

問題: uvicorn.run(reload=True)動作

解決方法: reload文字列指定必要

#  正方法
uvicorn.run(
    "app:app",  # 文字列指定
    host="0.0.0.0",
    port=8000,
    reload=True,
)

開発

追加方法

新追加場合@mcp.tool()使用

@mcp.tool()
def my_custom_tool(param1: str, param2: int) -> str:
    """説明記載

    LLM選択際説明参考
    """
    # 実装
    result = some_operation(param1, param2)
    return str(result)  # 文字列返推奨

追加方法

動的公開場合@mcp.resource()使用

@mcp.resource("data://{resource_id}")
def get_resource(resource_id: str) -> str:
    """動的取得"""
    return f"Resource content for {resource_id}"

確認

Databricks AppsDatabricks CLIUI確認

databricks apps logs <app-name>

関注意事項

  1. 認証: Databricks Apps自動的Bearer認証提供
  2. 環境変数: 機密情報app.yaml``env設定
  3. SQL: SQL実行必要応入力検証実装

参考

実装自由改変利用

問題発生場合以下確認

  1. Databricks Apps
  2. 環境結果
  3. MCP側設定

作成日: 2025-11-06
****: 1.0.0

相关 MCP 服务