DeepSeek MCP Server について
DeepSeek MCP Serverは、質問やコードファイルをDeepSeekモデルに送るGo製サーバーです。コードレビュー、JSON形式の応答、APIアカウント情報の確認に対応します。
主な機能
- 01DeepSeekモデルへの質問
- 02ファイルを使ったコードレビュー
- 03JSON形式の応答指定
- 04モデル一覧と残高確認
- 05トークン使用量の推定
活用シーン
- 01ローカルのソースファイルをレビュー
- 02DeepSeekに技術的な質問
- 03自動化向けJSONの生成
- 04API残高とトークン量の確認
MCP 対応
MCPクライアントに、DeepSeekへの質問、モデル一覧、API残高確認、トークン量推定のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
DeepSeek MCP サーバー
DeepSeek の API と連携する本番品質の MCP サーバーです。高度なコードレビュー機能、効率的なファイル管理、API アカウント管理を備えています。
機能
- マルチモデル対応:DeepSeek Chat や DeepSeek Coder を含むさまざまな DeepSeek モデルを選択できます
- コードレビューに特化:詳細なコード分析を行い、Markdown 形式で出力する組み込みのシステムプロンプトを備えています
- ファイルの自動処理:パスを直接指定できる、組み込みのファイル管理機能を備えています
- API アカウント管理:残高の確認とトークン使用量の見積もりができます
- JSON モード対応:解析しやすい構造化 JSON レスポンスをリクエストできます
- 高度なエラー処理:構造化されたエラーログを記録しながら、適切に縮退動作します
- 改善された再試行ロジック:API 呼び出しで、設定可能な指数バックオフによる自動再試行を行います
- セキュリティ:ファイル形式の制限とサイズ上限を設定できます
- パフォーマンス監視:リクエストのレイテンシとスループットを測定するメトリクス収集機能を内蔵しています
前提条件
- Go 1.21+
- DeepSeek API キー
- MCP プロトコルの基本的な理解
インストールとクイックスタート
# Clone and build
git clone https://github.com/your-username/DeepseekMCP
cd DeepseekMCP
go build -o bin/mcp-deepseek
# Start server with environment variables
export DEEPSEEK_API_KEY=your_api_key
export DEEPSEEK_MODEL=deepseek-chat
./bin/mcp-deepseek
設定
Claude Desktop
{
"mcpServers": {
"deepseek": {
"command": "/Your/project/path/bin/mcp-deepseek",
"env": {
"DEEPSEEK_API_KEY": "YOUR_API_KEY",
"DEEPSEEK_MODEL": "deepseek-chat"
}
}
}
}
環境変数
| 変数 | 説明 | デフォルト |
|---|---|---|
DEEPSEEK_API_KEY | DeepSeek API キー | 必須 |
DEEPSEEK_MODEL | 利用可能なモデルのモデル ID | deepseek-chat |
DEEPSEEK_SYSTEM_PROMPT | コードレビュー用のシステムプロンプト | デフォルトのコードレビュープロンプト |
DEEPSEEK_SYSTEM_PROMPT_FILE | システムプロンプトを含むファイルのパス | 空 |
DEEPSEEK_MAX_FILE_SIZE | 最大アップロードサイズ(バイト) | 10485760(10MB) |
DEEPSEEK_ALLOWED_FILE_TYPES | MIME タイプ(カンマ区切り) | [一般的なテキスト/コード形式] |
DEEPSEEK_TIMEOUT | API タイムアウト(秒) | 90 |
DEEPSEEK_MAX_RETRIES | API の最大再試行回数 | 2 |
DEEPSEEK_INITIAL_BACKOFF | 初期待機時間(秒) | 1 |
DEEPSEEK_MAX_BACKOFF | 最大待機時間(秒) | 10 |
DEEPSEEK_TEMPERATURE | モデルの Temperature(0.0~1.0) | 0.4 |
.env の例:
DEEPSEEK_API_KEY=your_api_key
DEEPSEEK_MODEL=deepseek-chat
DEEPSEEK_SYSTEM_PROMPT="Your custom code review prompt here"
# Alternative: load system prompt from file
# DEEPSEEK_SYSTEM_PROMPT_FILE=/path/to/prompt.txt
DEEPSEEK_MAX_FILE_SIZE=5242880 # 5MB
DEEPSEEK_ALLOWED_FILE_TYPES=text/x-go,text/markdown
DEEPSEEK_TEMPERATURE=0.7
コア API ツール
現在、サーバーでは以下のツールを利用できます。
deepseek_ask
コード分析、レビュー、一般的な質問に使用します。任意でファイルパスを指定できます。
{
"name": "deepseek_ask",
"arguments": {
"query": "Review this Go code for concurrency issues...",
"model": "deepseek-chat",
"systemPrompt": "Optional custom review instructions",
"file_paths": ["main.go", "config.go"],
"json_mode": false
}
}
deepseek_models
利用可能なすべての DeepSeek モデルと、その機能を一覧表示します。
{
"name": "deepseek_models",
"arguments": {}
}
deepseek_balance
DeepSeek API アカウントの残高と利用可能状況を確認します。
{
"name": "deepseek_balance",
"arguments": {}
}
deepseek_token_estimate
テキストまたはファイルのトークン数を見積もり、クォータ管理に役立てます。
{
"name": "deepseek_token_estimate",
"arguments": {
"text": "Your text to estimate...",
"file_path": "path/to/your/file.go"
}
}
対応モデル
デフォルトで以下の DeepSeek モデルに対応しています。
| モデル ID | 説明 |
|---|---|
deepseek-chat | パフォーマンスと効率のバランスを重視した汎用チャットモデル |
deepseek-coder | コーディングや技術的なタスクに特化したモデル |
deepseek-reasoner | 推論や問題解決のタスクに最適化されたモデル |
注:実際に利用可能なモデルは、API のアクセスレベルによって異なる場合があります。サーバーは DeepSeek API 経由でアクセスできるすべてのモデルを自動的に検出し、利用可能にします。
対応ファイル形式
| 拡張子 | MIME タイプ |
|---|---|
| .go | text/x-go |
| .py | text/x-python |
| .js | text/javascript |
| .md | text/markdown |
| .java | text/x-java |
| .c/.h | text/x-c |
| .cpp/.hpp | text/x-c++ |
| 25+ more | (deepseek.go の getMimeTypeFromPath を参照) |
運用上の注意
- 縮退モード:初期化エラーが発生すると、自動的にセーフモードに移行します
- 監査ログ:すべての操作をタイムスタンプとメタデータ付きで記録します
- セキュリティ:処理前に、ファイルの内容を MIME タイプとサイズに基づいて検証します
ファイル処理
サーバーは deepseek_ask ツールを通じて、ファイルを直接処理します。
file_paths配列パラメーターにローカルファイルのパスを指定します- サーバーは自動的に以下を行います。
- 指定されたパスからファイルを読み取ります
- ファイルの拡張子に基づいて適切な MIME タイプを判定します
- ファイルの内容を DeepSeek API にアップロードします
- ファイルをクエリのコンテキストとして使用します
この直接的なファイル処理方式により、個別のファイルアップロード/管理エンドポイントは不要になります。
JSON モードのサポート
構造化データ出力が必要な統合向けに、サーバーは JSON モードをサポートしています。
- 構造化された応答:DeepSeek モデルに適切な形式の JSON 応答をリクエストできます
- パーサーに適した形式:CI/CD パイプラインや自動化システムに最適です
- 簡単な統合:リクエストで
json_mode: trueを設定するだけです
JSON モードを使用する例:
{
"name": "deepseek_ask",
"arguments": {
"query": "Analyze this code and return a JSON object with: issues_found (array of strings), complexity_score (number 1-10), and recommendations (array of strings)",
"model": "deepseek-chat",
"json_mode": true,
"file_paths": ["main.go", "config.go"]
}
}
これにより、アプリケーションで直接解析できる、形式の整った JSON 応答が返されます。
開発
コマンドラインオプション
サーバーでは、環境変数を上書きする次のコマンドラインオプションをサポートしています。
# Override the DeepSeek model to use
./bin/mcp-deepseek -deepseek-model=deepseek-coder
# Override the system prompt
./bin/mcp-deepseek -deepseek-system-prompt="Your custom prompt here"
# Override the temperature setting (0.0-1.0)
./bin/mcp-deepseek -deepseek-temperature=0.8
テストの実行
テストを実行するには:
go test -v ./...
リンターの実行
golangci-lint run
コードのフォーマット
gofmt -w .
ライセンス
コントリビューション
コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。
- プロジェクトをフォークします
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。