mcpField
S
Salesforce Ai Agent Mcp Server

Salesforce Ai Agent Mcp Server

ローカル
github.com/pratapsfdc22-devAI・エージェント132 週間前に更新

Salesforce Ai Agent Mcp Server について

Jira Cloud、Salesforce、n8n を接続し、Salesforce 設定を自動化する MCP サーバーです。Jira の要件取得、Salesforce メタデータの作成とデプロイ状況の確認に加え、n8n ワークフローの実行・状態確認ができます。

主な機能

  1. 01Jira Story の取得と更新
  2. 02Story の検索とコメント投稿
  3. 03Salesforce カスタム項目と検証ルールの作成
  4. 04メタデータのデプロイと状況確認
  5. 05SOQL クエリの実行
  6. 06n8n ワークフローの実行と状態確認

活用シーン

  1. 01Jira Story に基づく Salesforce 設定の作成
  2. 02項目やルールの検証とメタデータのデプロイ
  3. 03設定処理の結果を Jira で報告
  4. 04n8n による自動化ワークフローの編成

MCP 対応

Claude などの MCP クライアントに Jira、Salesforce、n8n のツールを提供し、Stdio と SSE の通信に対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Salesforce AI Agent MCP Server

Claude が Jira Cloud、Salesforce(Tooling API と Metadata API)、n8n ワークフローに直接かつ構造化された形でアクセスできる、プロダクション品質の Model Context Protocol(MCP)サーバーです。

Salesforce Developer AI Agent プロジェクト向けに構築されています。この自動化パイプラインは、Jira ストーリーを読み取り、Salesforce の設定要件を解釈し、メタデータ(カスタム項目、入力規則など)を Salesforce に直接デプロイします。


アーキテクチャ

Claude Desktop / Claude Code / VS Code
           │  (stdio or SSE)
           ▼
  salesforce-ai-agent-mcp
  ┌───────────────────────────┐
  │  Tools (12 total)         │
  │  ├── Jira (4 tools)       │──► Jira Cloud REST API v3
  │  ├── Salesforce (6 tools) │──► Salesforce Tooling + Metadata APIs
  │  └── n8n (2 tools)        │──► n8n Webhook + REST API
  └───────────────────────────┘

前提条件

  • Node.js ≥ 18
  • npm ≥ 9
  • API トークンを持つ Jira Cloud アカウント
  • Connected App(OAuth 2.0)を設定した Salesforce 組織
  • n8n インスタンス(任意。ワークフローのオーケストレーションに使用)

インストール

cd salesforce-ai-agent-mcp
npm install
npm run build

設定

.env.example を .env にコピーし、認証情報を入力します。

cp .env.example .env
Jira
変数説明
JIRA_BASE_URL例:https://your-org.atlassian.net
JIRA_EMAILAtlassian アカウントのメールアドレス
JIRA_API_TOKENAtlassian API Tokens で生成します
Salesforce

Username-Password OAuth flow を有効にした Connected App が必要です。

  1. Salesforce の設定 → App Manager → New Connected App に移動します
  2. OAuth 設定を有効にします
  3. スコープを追加します:api、refresh_token
  4. Consumer Key をコピーして SF_CLIENT_ID に設定します
  5. Consumer Secret をコピーして SF_CLIENT_SECRET に設定します
変数説明
SF_LOGIN_URLhttps://login.salesforce.com(本番)または https://test.salesforce.com(Sandbox)
SF_CLIENT_IDConnected App の Consumer Key
SF_CLIENT_SECRETConnected App の Consumer Secret
SF_USERNAMESalesforce のユーザー名
SF_PASSWORDSalesforce のパスワード
SF_SECURITY_TOKEN設定 → 個人情報 → Reset Security Token でリセットします
SF_API_VERSIONAPI バージョン。例:v61.0(デフォルト)
n8n
変数説明
N8N_BASE_URLn8n インスタンスの URL。例:https://your-n8n.com
N8N_API_KEYn8n Settings → API → Create API Key で生成します

使い方

stdio モード(Claude Desktop / Claude Code / VS Code)
npm start
# or for development:
npm run dev
SSE モード(リモート接続/n8n 連携用)
npm run start:sse
# or for development:
npm run dev:sse

SSE モードで利用できるエンドポイント:

  • GET http://localhost:3000/sse — クライアントはここに接続します
  • POST http://localhost:3000/messages?sessionId=<id> — クライアントはここにメッセージを送信します
  • GET http://localhost:3000/health — 稼働確認用エンドポイント

ポートを変更するには:

MCP_PORT=8080 npm run start:sse

Claude Desktop への接続

以下を claude_desktop_config.json に追加します。

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "salesforce-ai-agent": {
      "command": "node",
      "args": ["/absolute/path/to/salesforce-ai-agent-mcp/dist/index.js"],
      "env": {
        "JIRA_BASE_URL": "https://your-org.atlassian.net",
        "JIRA_EMAIL": "[email protected]",
        "JIRA_API_TOKEN": "your_token",
        "SF_LOGIN_URL": "https://login.salesforce.com",
        "SF_CLIENT_ID": "your_client_id",
        "SF_CLIENT_SECRET": "your_client_secret",
        "SF_USERNAME": "[email protected]",
        "SF_PASSWORD": "yourpassword",
        "SF_SECURITY_TOKEN": "yourSecurityToken",
        "N8N_BASE_URL": "https://your-n8n.com",
        "N8N_API_KEY": "your_n8n_api_key"
      }
    }
  }
}

Claude Code への接続(VS Code 拡張機能)

VS Code の settings.json に追加します(または MCP 拡張機能の UI から設定します)。

{
  "mcp.servers": {
    "salesforce-ai-agent": {
      "command": "node",
      "args": ["${workspaceFolder}/salesforce-ai-agent-mcp/dist/index.js"],
      "env": {
        "JIRA_BASE_URL": "https://your-org.atlassian.net",
        "JIRA_EMAIL": "[email protected]",
        "JIRA_API_TOKEN": "your_token",
        "SF_LOGIN_URL": "https://login.salesforce.com",
        "SF_CLIENT_ID": "your_client_id",
        "SF_CLIENT_SECRET": "your_client_secret",
        "SF_USERNAME": "[email protected]",
        "SF_PASSWORD": "yourpassword",
        "SF_SECURITY_TOKEN": "yourSecurityToken",
        "N8N_BASE_URL": "https://your-n8n.com",
        "N8N_API_KEY": "your_n8n_api_key"
      }
    }
  }
}

または、このプロジェクトのルートにある mcp.json ファイルを VS Code の MCP 拡張機能で使用できます。ワークスペースのルートに配置すると、自動的に検出されます。


利用可能なツール(合計 12 個)

Jira ツール
jira_get_story

課題キーを指定して Jira ストーリーを取得します。概要、説明、受け入れ条件、ステータス、ラベル、およびすべてのカスタムフィールドを返します。

issueKey: "SFDC-123"
jira_update_story_status

Jira ストーリーを新しいワークフローステータスに遷移させます。

issueKey: "SFDC-123"
targetStatus: "In Progress"   # must match an available transition
jira_post_comment

Jira ストーリーにコメントを投稿します(AI エージェントが結果を報告したり、確認を求めたりするために使用します)。

issueKey: "SFDC-123"
body: "Deployed Customer_Tier__c field to Account. Deployment ID: 0Af..."
jira_search_stories

JQL に基づいてストーリーを検索します。

jql: "label = \"sf-config\" AND status = \"To Do\" AND project = SFDC"
maxResults: 25

Salesforce ツール
salesforce_get_object_fields

Salesforce オブジェクトのすべての項目を記述します。

objectName: "Account"
salesforce_create_custom_field

Tooling API を使用してカスタム項目を作成します。

objectName: "Account"
fieldLabel: "Customer Tier"
fieldApiName: "Customer_Tier"     # __c added automatically
fieldType: "Picklist"
picklistValues: ["Platinum", "Gold", "Silver", "Bronze"]
description: "Tier classification for account segmentation"

参照項目の例:

objectName: "Case"
fieldLabel: "Related Contract"
fieldApiName: "Related_Contract"
fieldType: "Lookup"
referenceTo: "Contract"
salesforce_create_validation_rule

Tooling API を使用して入力規則を作成します。

objectName: "Account"
ruleName: "Require_Phone_For_Hot_Leads"
errorConditionFormula: "AND(Rating = \"Hot\", ISBLANK(Phone))"
errorMessage: "Phone number is required for Hot-rated accounts"
errorDisplayField: "Phone"
active: true
salesforce_deploy_metadata

base64 でエンコードされた ZIP からメタデータのデプロイを開始します。

zipFile: "<base64-encoded-zip>"
checkOnly: false
testLevel: "RunLocalTests"
rollbackOnError: true
salesforce_get_deployment_status

デプロイのステータスを確認します。

deploymentId: "0AfXXXXXXXXXXXXX"
salesforce_query

検証および確認のために SOQL を実行します。

soql: "SELECT Id, Name, Customer_Tier__c FROM Account WHERE Rating = 'Hot' LIMIT 10"

n8n ツール
n8n_trigger_workflow

Webhook URL を使用して n8n ワークフローをトリガーします。

webhookUrl: "https://your-n8n.com/webhook/abc123"
payload: {
  "issueKey": "SFDC-123",
  "environment": "sandbox",
  "triggeredBy": "claude"
}
n8n_get_execution_status

n8n の実行ステータスを確認します。

executionId: "12345"

AI エージェントのワークフロー例

You: "Process Jira story SFDC-456 and deploy the Salesforce configuration"

Claude:
1. jira_get_story(issueKey: "SFDC-456")
   → reads requirements: "Add Customer_Tier picklist to Account"

2. salesforce_get_object_fields(objectName: "Account")
   → confirms Customer_Tier__c doesn't exist yet

3. salesforce_create_custom_field(
     objectName: "Account",
     fieldLabel: "Customer Tier",
     fieldApiName: "Customer_Tier",
     fieldType: "Picklist",
     picklistValues: ["Platinum", "Gold", "Silver"]
   )
   → creates the field

4. salesforce_query(soql: "SELECT QualifiedApiName FROM FieldDefinition WHERE EntityDefinition.QualifiedApiName = 'Account' AND QualifiedApiName = 'Customer_Tier__c'")
   → verifies the field was created

5. jira_post_comment(
     issueKey: "SFDC-456",
     body: "✅ Customer_Tier__c picklist field created on Account object with values: Platinum, Gold, Silver."
   )

6. jira_update_story_status(issueKey: "SFDC-456", targetStatus: "Done")

ログ

すべてのログは構造化 JSON として stderr に書き込まれるため、MCP の stdio トランスポートに干渉することはありません。

環境変数でログレベルを設定します。

LOG_LEVEL=debug npm start    # debug | info | warn | error

開発

# Type-check only
npm run typecheck

# Build
npm run build

# Dev with hot reload (stdio)
npm run dev

# Dev with hot reload (SSE)
npm run dev:sse

プロジェクト構成

salesforce-ai-agent-mcp/
├── src/
│   ├── index.ts              # Entry point — stdio & SSE transport setup
│   ├── server.ts             # McpServer creation & tool registration
│   ├── tools/
│   │   ├── jira.ts           # Jira tool definitions (4 tools)
│   │   ├── salesforce.ts     # Salesforce tool definitions (6 tools)
│   │   └── n8n.ts            # n8n tool definitions (2 tools)
│   ├── clients/
│   │   ├── jiraClient.ts     # Jira REST API v3 client
│   │   ├── salesforceClient.ts  # Salesforce Tooling/Metadata API + OAuth
│   │   ├── n8nClient.ts      # n8n webhook + REST API client
│   │   └── logger.ts         # Structured JSON logger (stderr)
│   └── types/
│       └── index.ts          # Shared TypeScript types
├── .env.example              # All required environment variables
├── mcp.json                  # VS Code MCP extension manifest
├── package.json
├── tsconfig.json
└── README.md

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。