Salesforce AI Agent MCP Server
Provides tools for managing Jira Cloud stories, including fetching, updating status, posting comments, and searching via JQL.
Provides tools for triggering n8n workflows and checking execution status.
Provides tools for interacting with Salesforce Tooling and Metadata APIs, including managing custom fields, validation rules, deploying metadata, and querying with SOQL.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Salesforce AI Agent MCP ServerRead Jira story ABC-123 and deploy custom field to Salesforce"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Salesforce AI Agent MCP Server
A production-grade Model Context Protocol (MCP) server that gives Claude direct, structured access to Jira Cloud, Salesforce (Tooling + Metadata APIs), and n8n workflows.
Built for the Salesforce Developer AI Agent project — an automation pipeline that reads Jira stories, interprets Salesforce configuration requirements, and deploys metadata (custom fields, validation rules, etc.) directly into Salesforce.
Architecture
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
└───────────────────────────┘Related MCP server: jira-mcp-server
Prerequisites
Node.js ≥ 18
npm ≥ 9
A Jira Cloud account with API token
A Salesforce org with a Connected App (OAuth 2.0)
An n8n instance (optional, for workflow orchestration)
Installation
cd salesforce-ai-agent-mcp
npm install
npm run buildConfiguration
Copy .env.example to .env and fill in your credentials:
cp .env.example .envJira
Variable | Description |
| e.g. |
| Your Atlassian account email |
| Generate at Atlassian API Tokens |
Salesforce
You need a Connected App with the Username-Password OAuth flow enabled.
In Salesforce Setup → App Manager → New Connected App
Enable OAuth settings
Add scope:
api,refresh_tokenCopy Consumer Key →
SF_CLIENT_IDCopy Consumer Secret →
SF_CLIENT_SECRET
Variable | Description |
|
|
| Connected App Consumer Key |
| Connected App Consumer Secret |
| Your Salesforce username |
| Your Salesforce password |
| Reset at Setup → Personal Information → Reset Security Token |
| API version, e.g. |
n8n
Variable | Description |
| Your n8n instance URL, e.g. |
| Generate at n8n Settings → API → Create API Key |
Usage
stdio mode (Claude Desktop / Claude Code / VS Code)
npm start
# or for development:
npm run devSSE mode (for remote/n8n integration)
npm run start:sse
# or for development:
npm run dev:sseEndpoints available in SSE mode:
GET http://localhost:3000/sse— clients connect herePOST http://localhost:3000/messages?sessionId=<id>— clients send messages hereGET http://localhost:3000/health— liveness probe
Override the port:
MCP_PORT=8080 npm run start:sseConnecting to Claude Desktop
Add the following to your 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": "you@company.com",
"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": "you@yourorg.com",
"SF_PASSWORD": "yourpassword",
"SF_SECURITY_TOKEN": "yourSecurityToken",
"N8N_BASE_URL": "https://your-n8n.com",
"N8N_API_KEY": "your_n8n_api_key"
}
}
}
}Connecting to Claude Code (VS Code Extension)
Add to your VS Code settings.json (or via the MCP extension 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": "you@company.com",
"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": "you@yourorg.com",
"SF_PASSWORD": "yourpassword",
"SF_SECURITY_TOKEN": "yourSecurityToken",
"N8N_BASE_URL": "https://your-n8n.com",
"N8N_API_KEY": "your_n8n_api_key"
}
}
}
}Alternatively, the mcp.json file at the root of this project is compatible with VS Code's MCP extension and will be auto-detected if placed in your workspace root.
Available Tools (12 total)
Jira Tools
jira_get_story
Fetch a Jira story by issue key. Returns summary, description, acceptance criteria, status, labels, and all custom fields.
issueKey: "SFDC-123"jira_update_story_status
Transition a Jira story to a new workflow status.
issueKey: "SFDC-123"
targetStatus: "In Progress" # must match an available transitionjira_post_comment
Post a comment to a Jira story (used by the AI agent to report results or ask for clarification).
issueKey: "SFDC-123"
body: "Deployed Customer_Tier__c field to Account. Deployment ID: 0Af..."jira_search_stories
JQL-based story search.
jql: "label = \"sf-config\" AND status = \"To Do\" AND project = SFDC"
maxResults: 25Salesforce Tools
salesforce_get_object_fields
Describe all fields on a Salesforce object.
objectName: "Account"salesforce_create_custom_field
Create a custom field via the 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"Lookup field example:
objectName: "Case"
fieldLabel: "Related Contract"
fieldApiName: "Related_Contract"
fieldType: "Lookup"
referenceTo: "Contract"salesforce_create_validation_rule
Create a validation rule via the 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: truesalesforce_deploy_metadata
Trigger a metadata deployment from a base64-encoded ZIP.
zipFile: "<base64-encoded-zip>"
checkOnly: false
testLevel: "RunLocalTests"
rollbackOnError: truesalesforce_get_deployment_status
Poll a deployment's status.
deploymentId: "0AfXXXXXXXXXXXXX"salesforce_query
Execute SOQL for validation and verification.
soql: "SELECT Id, Name, Customer_Tier__c FROM Account WHERE Rating = 'Hot' LIMIT 10"n8n Tools
n8n_trigger_workflow
Trigger an n8n workflow via webhook URL.
webhookUrl: "https://your-n8n.com/webhook/abc123"
payload: {
"issueKey": "SFDC-123",
"environment": "sandbox",
"triggeredBy": "claude"
}n8n_get_execution_status
Check the status of an n8n execution.
executionId: "12345"Example AI Agent Workflow
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")Logging
All logs are written as structured JSON to stderr so they never interfere with the MCP stdio transport.
Control the log level via environment variable:
LOG_LEVEL=debug npm start # debug | info | warn | errorDevelopment
# 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:sseProject Structure
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.mdAvailable Tools
12 toolsjira_get_storyA
Fetch a Jira story by issue key. Returns summary, description, acceptance criteria, status, labels, assignee, and all custom fields.
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | Jira issue key in the format PROJECT-NNN (e.g. SFDC-123) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure. It clearly states this is a fetch operation (safe, read-only) and explicitly lists the returned data fields, including 'all custom fields'. It does not mention error handling or response structure, but for a simple, non-destructive retrieval, the description provides adequate transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the verb and resource, and then lists return fields. Every word adds value, with no fluff or redundancy. It is appropriately sized for a simple single-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one param, no output schema) and the description adequately covers what the tool does and what it returns. The list of return fields provides some expectations, though it does not describe the response shape or potential errors. Given the low complexity, this is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter issueKey is fully described in the schema with format and example (PROJECT-NNN). The description references 'by issue key' but adds no additional meaning beyond the schema. Since schema coverage is 100%, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Fetch' and identifies the resource 'Jira story by issue key', making the tool's primary purpose unmistakable. It also enumerates the return fields, further clarifying scope. This clearly distinguishes it from sibling tools like jira_search_stories (search) and jira_update_story_status (update).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies usage: use when you need a single Jira story by key. It does not explicitly state when not to use it or alternatives (e.g., use search when you don't have a key), but the context is clear enough for an agent to infer the appropriate scenario. The lack of explicit exclusions keeps it at 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_post_commentA
Post a comment to a Jira story. Used by the AI agent to document deployment results, ask for clarification, or provide status updates. Supports plain text with paragraphs separated by blank lines.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Comment text. Use double newlines to separate paragraphs. Supports plain text — rich formatting will be preserved as ADF. | |
| issueKey | Yes | Jira issue key (e.g. SFDC-123) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the tool supports plain text with paragraphs separated by blank lines, which is a useful format constraint. However, it does not disclose potential side effects, authentication requirements, error behavior, or whether the comment is immediately visible, leaving some behavioral aspects implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences that front-load the primary action and then provide context. Every sentence contributes value without repetition or fluff. It is appropriately sized for a simple two-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters, no output schema, and no annotations, the description covers the essential context: what it does, when to use it, and the input format. It does not explain return values, but none are expected here. It could mention whether the comment is appended to an existing thread, but the lack of output schema makes this less critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage with descriptions for both parameters (body and issueKey). The description adds usage context but does not add new meaning about the parameters themselves. The text about plain text and paragraphs aligns with the body schema description, but does not go beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool posts a comment to a Jira story, using a specific verb and resource. It is distinct from sibling tools like jira_update_story_status and jira_search_stories, as no other sibling handles comments. The provided use cases reinforce the purpose without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists when to use the tool: 'to document deployment results, ask for clarification, or provide status updates.' This provides clear context and avoids confusion with sibling tools, though it does not explicitly state when not to use it or name alternatives. The guidance is sufficient for an agent to select this tool for comment-related actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_search_storiesA
Search Jira stories using JQL (Jira Query Language). Returns matching issues with full details. Example JQL: 'label = "sf-config" AND status = "To Do" AND project = SFDC ORDER BY created DESC'
| Name | Required | Description | Default |
|---|---|---|---|
| jql | Yes | JQL query string. Examples: 'project = SFDC AND status = "To Do"', 'label = "sf-config" AND assignee = currentUser()', 'issuetype = Story AND sprint in openSprints()' | |
| startAt | No | Zero-based offset for pagination (default 0) | |
| maxResults | No | Maximum number of results to return (1–100, default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of disclosing behavior. It does state that the tool 'Returns matching issues with full details', which is useful, but it doesn't mention whether the operation is read-only, whether it enforces issue type 'Story', how pagination works (beyond schema defaults), or what 'full details' includes. This leaves some ambiguity for an agent, so a mid-range score is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: a clear statement of purpose and an example JQL. It is concise, front-loaded with the core verb and resource, and contains no filler. Every sentence earns its place; the example is directly actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a moderate complexity (pagination, required jql) and no output schema, so the description should clarify return values. It states 'Returns matching issues with full details', which gives a general idea but not the structure. Combined with the rich schema descriptions and the example, an agent has sufficient context to invoke the tool correctly, though a clearer definition of 'full details' would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: all three parameters (jql, startAt, maxResults) have detailed descriptions with examples, defaults, and constraints. The tool description adds an example JQL, but it largely duplicates examples already in the schema. Since the schema already provides complete parameter semantics, the description's added value is marginal, warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Search Jira stories using JQL (Jira Query Language)'. It specifies the verb (search), resource (Jira stories), and method (JQL), which distinguishes it from sibling tools like jira_get_story (which fetches a single story) and jira_update_story_status. The example JQL further reinforces the intended use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on how to use the tool (by constructing a JQL query) and gives a concrete example. However, it does not explicitly state when to use it over alternatives (e.g., 'use this when you need to search by criteria rather than fetching a specific story'). This is a minor gap, but the usage context is clear enough for an agent to choose it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jira_update_story_statusA
Transition a Jira story to a new status. The available transitions depend on the current workflow configuration. Common statuses: 'To Do', 'In Progress', 'In Review', 'Done', 'Blocked'.
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | Jira issue key (e.g. SFDC-123) | |
| targetStatus | Yes | The target workflow status name (e.g. 'In Progress', 'Done', 'Blocked'). Must match an available transition exactly. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for disclosing side effects. It only states that transitions are workflow-dependent, which is a useful constraint, but it omits any information about permissions, reversibility, or what the operation returns. This is minimal behavioral disclosure for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary action, and includes a useful note about workflow dependency. Every sentence contributes meaning without unnecessary padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and acknowledges workflow variability, but it does not explain how to discover available transitions or what the tool returns. Given the lack of an output schema and the absence of guidance on preconditions, the description is adequate but not fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides detailed descriptions for both parameters, including format examples and exact-match requirements. The tool description adds no additional parameter information beyond restating common statuses already listed in the schema. With 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Transition') and resource ('a Jira story'). It distinguishes from sibling tools like jira_get_story and jira_post_comment by focusing on status changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context that transitions depend on workflow configuration, implying the agent may need to check the current status first. However, it does not explicitly mention when to use this tool versus alternatives or give exclusions. No alternatives are named, so it earns a mid-level score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_get_execution_statusA
Retrieve the current status and output data of an n8n workflow execution by its execution ID. Use this to poll whether a triggered workflow has completed successfully.
| Name | Required | Description | Default |
|---|---|---|---|
| executionId | Yes | The n8n execution ID returned by n8n_trigger_workflow or found in the n8n Executions panel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It correctly indicates a read operation ('retrieve') and mentions output data, but doesn't disclose error behavior (e.g., invalid execution ID), rate limits, or whether partial data is returned before completion. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences: the first states the operation and the second states the use case. No redundant words, and the structure front-loads the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description covers the essential semantics and use case. It omits potential error handling, but given the simplicity, this is not a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the executionId parameter with its source and purpose. The description adds no further parameter detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the status and output data of an n8n workflow execution by ID. This specific verb-resource pairing distinguishes it from sibling n8n_trigger_workflow, which creates executions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use this for polling whether a triggered workflow completed successfully, giving clear context. It doesn't list exclusions or explicitly name alternatives, but the sibling relationship is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n8n_trigger_workflowA
Trigger a specific n8n workflow by its webhook URL, passing a JSON payload. This enables Claude to kick off the full Salesforce automation pipeline — for example, by sending a Jira issue key to start the analysis and deployment workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | JSON payload to send to the webhook. Structure depends on what the n8n workflow expects. For the Salesforce AI Agent pipeline, include fields like: { issueKey, projectKey, environment, triggeredBy } | |
| webhookUrl | Yes | The full n8n webhook URL for the workflow (e.g. https://your-n8n.com/webhook/abc123). Obtain this from the Webhook trigger node in your n8n workflow. | |
| waitForResponse | No | If true, the tool waits for a synchronous response from the webhook. If false (default), it fires-and-forgets and returns immediately. Set to true only for workflows configured with 'Respond to Webhook' node. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a side-effectful action ('kick off' a pipeline) but does not disclose potential consequences, authentication requirements, or response behavior. The schema mentions waitForResponse semantics, but that is schema text, not the description. This lack of transparency for a triggering action is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action. Every sentence earns its place: the first states the core functionality, the second illustrates applicability. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is moderately complex with a webhook trigger and optional waitForResponse, but the schema covers parameters well. The description lacks guidance on follow-up actions, such as using n8n_get_execution_status to monitor the triggered workflow, and does not mention error handling or authentication context. It is adequate but leaves gaps that could affect an agent's end-to-end usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented in the schema. The description adds a brief example use case (Jira issue key) but does not expand meaningfully on parameter semantics beyond what the schema provides. Baseline of 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Trigger a specific n8n workflow by its webhook URL') and the resource (n8n workflow). It also distinguishes from sibling tools by focusing on triggering rather than status retrieval, and provides a concrete use case involving the Salesforce pipeline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool ('to kick off the full Salesforce automation pipeline') and gives a concrete example (sending a Jira issue key). It does not explicitly state exclusions or alternatives, but the context with n8n_get_execution_status suggests it is the entry point followed by status checks. A clear 'when not to use' is absent, leaving it slightly below explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
salesforce_create_custom_fieldB
Create a custom field on a Salesforce object using the Tooling API. Supports all standard field types including Text, Number, Picklist, Checkbox, Date, Lookup, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Number of decimal places for Number/Currency/Percent fields (default 0) | |
| length | No | Field length. For Text: 1–255 (default 255). For LongTextArea/RichTextArea: up to 131072 (default 32768). Not used for Date, Checkbox, etc. | |
| unique | No | Whether the field value must be unique (default false) | |
| formula | No | Formula expression for Formula fields | |
| required | No | Whether the field is required (default false) | |
| fieldType | Yes | Salesforce field type. One of: Text, Number, Currency, Picklist, MultiSelectPicklist, Checkbox, Date, DateTime, Email, Phone, URL, TextArea, LongTextArea, RichTextArea, Lookup, MasterDetail, Percent, AutoNumber, Formula | |
| precision | No | Total number of digits for Number/Currency/Percent fields (default 18) | |
| fieldLabel | Yes | Human-readable field label (e.g. 'Customer Tier') | |
| objectName | Yes | Salesforce object API name (e.g. 'Account', 'My_Object__c') | |
| description | No | Internal description of the field's purpose | |
| referenceTo | No | Target object API name for Lookup or MasterDetail fields (e.g. 'Account', 'My_Object__c'). Required for Lookup/MasterDetail types. | |
| defaultValue | No | Default value for the field. For AutoNumber fields, this sets the display format (e.g. 'CASE-{000000}') | |
| fieldApiName | Yes | Field API name without the __c suffix (e.g. 'Customer_Tier'). The __c suffix will be added automatically. | |
| visibleLines | No | Number of visible lines for LongTextArea/RichTextArea fields (default 5) | |
| inlineHelpText | No | Help text shown to users in the UI | |
| picklistValues | No | List of picklist values for Picklist or MultiSelectPicklist fields (e.g. ['High', 'Medium', 'Low']) | |
| relationshipName | No | Relationship name for Lookup/MasterDetail fields. Auto-generated if not provided. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions 'using the Tooling API' but fails to disclose whether creation is immediate or staged, what permissions are needed, or what side effects might occur (e.g., field being unavailable until deployment). It also does not describe error behavior or impact on existing data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and front-loaded with the core purpose. The second sentence, however, ends with 'and more' which is redundant given the enum is exhaustive, making it slightly less crisp but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex creation tool with 17 parameters, 4 required, and no output schema. The description offers only a basic statement of intent and fails to explain what happens on success, how errors are reported, or how this fits into a broader Salesforce metadata lifecycle. Minimal for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — all 17 parameters have descriptions in the input schema. The description's phrase 'Supports all standard field types including...' adds little beyond the schema's exhaustive enum. No additional parameter relationships or usage detail are provided in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a custom field on a Salesforce object using the Tooling API', using a specific verb + resource. This distinguishes it from sibling tools like salesforce_create_validation_rule (validation rule creation) and salesforce_get_object_fields (reading fields).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool vs alternatives. It does not mention that this is for individual field creation rather than bulk deployment (salesforce_deploy_metadata), nor does it list any prerequisites or context for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
salesforce_create_validation_ruleB
Create a validation rule on a Salesforce object using the Tooling API. The rule evaluates an error condition formula and displays an error message when the formula returns true.
| Name | Required | Description | Default |
|---|---|---|---|
| active | No | Whether the rule should be active after creation (default true) | |
| ruleName | Yes | API name for the validation rule (no spaces, e.g. 'Require_Phone_For_Hot_Leads') | |
| objectName | Yes | Salesforce object API name (e.g. 'Account', 'My_Object__c') | |
| description | No | Internal description of the rule's purpose | |
| errorMessage | Yes | Error message shown to users when validation fails (e.g. 'Phone is required for Hot leads') | |
| errorDisplayField | No | API name of the field where the error should appear. If omitted, the error appears at the top of the page. | |
| errorConditionFormula | Yes | Salesforce formula that evaluates to TRUE when the record should be invalid. Example: 'AND(Rating = "Hot", ISBLANK(Phone))' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the Tooling API and the rule's logic, but it does not disclose important traits such as whether the rule requires deployment, if it is reversible, permission requirements, or what happens on errors. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences that front-load the primary verb and resource. It provides useful context about the rule's behavior without any waste. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool having 7 parameters and no output schema, the description fails to provide necessary context. It does not mention deployment requirements, permissions, the creation process via Tooling API, or validations on the formula. The schema covers parameters, but the behavioral and operational context is incomplete for a create operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description includes terms like 'error condition formula' and 'error message' that map to parameters, but adds no new meaning beyond the schema. The schema already provides detailed descriptions and examples, so the description does not compensate for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Create a validation rule on a Salesforce object using the Tooling API.' It also explains the rule's behavior (evaluates an error condition formula and displays an error message when the formula returns true), which distinguishes it from sibling tools like salesforce_create_custom_field and salesforce_query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives. It does not mention any 'when' or 'when not' conditions, prerequisites, or reference to sibling tools. The only implied context is that it creates validation rules, but there is no stated use case or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
salesforce_deploy_metadataB
Trigger a Salesforce metadata deployment using the Metadata API. The metadata must be provided as a base64-encoded ZIP file containing a standard Salesforce metadata package.
| Name | Required | Description | Default |
|---|---|---|---|
| zipFile | Yes | Base64-encoded ZIP file containing the Salesforce metadata package. Must include package.xml and the appropriate metadata folders. | |
| runTests | No | Specific test class names to run when testLevel is 'RunSpecifiedTests' | |
| checkOnly | No | If true, validates the deployment without making changes (dry run). Default false. | |
| testLevel | No | Test execution level. Use 'RunLocalTests' or 'RunAllTestsInOrg' for production deployments. | NoTestRun |
| ignoreWarnings | No | Allow deployment to succeed with warnings (default false) | |
| rollbackOnError | No | Roll back all changes if any component fails (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It fails to mention that deployments are typically asynchronous, that a deployment ID is returned, or that changes may be rolled back if errors occur. It also doesn't state potential side effects beyond the obvious deployment action, which is a significant gap for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the core action and requirement. No filler or redundant information, earning a high score for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 6 parameters, no annotations, no output schema, and a sibling for status checking, the description is minimal. It doesn't explain the deployment workflow, what the tool returns, or how to leverage the result. This is insufficient for the complexity and mutating nature of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well-documented. The description adds no additional meaning beyond restating the ZIP requirement, which is already present in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool triggers a Salesforce metadata deployment via the Metadata API, with a specific requirement for a base64-encoded ZIP. This distinguishes it from sibling tools like salesforce_get_deployment_status and jira_get_story.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as salesforce_get_deployment_status. The description doesn't mention the deployment lifecycle or that users may need to check status separately, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
salesforce_get_deployment_statusA
Poll the status of a Salesforce metadata deployment by its deployment ID. Returns component counts, errors, and test results.
| Name | Required | Description | Default |
|---|---|---|---|
| deploymentId | Yes | The deployment ID returned by salesforce_deploy_metadata (18-character Salesforce ID) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Poll' implies a read-only, potentially repeated operation, and it discloses what is returned (component counts, errors, test results). However, it does not mention error behavior (e.g., invalid ID), what happens if deployment is still in progress, or any rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences convey the essential information. The first sentence front-loads the action and resource, and the second lists return values. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple single-parameter tool with no output schema and no annotations. The description adequately explains the purpose and return values, covering component counts, errors, and test results. It could improve by clarifying the 'status' aspect (e.g., states like InProgress, Succeeded) and error conditions, but it is sufficient for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter is already well-documented in the schema. The tool description adds little beyond restating 'deployment ID' from the schema, though the schema's reference to salesforce_deploy_metadata is helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Poll the status'), the specific resource ('Salesforce metadata deployment'), and the identifier ('deployment ID'). It also lists key return elements, distinguishing it from other tools like salesforce_deploy_metadata and n8n_get_execution_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after a deployment is initiated, and the parameter description explicitly references salesforce_deploy_metadata as the source of the ID. However, it does not provide explicit 'when not to use' or name alternative tools for situations where polling is not appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
salesforce_get_object_fieldsA
Query all existing fields on a Salesforce object using the REST API describe endpoint. Returns field names, labels, types, lengths, and picklist values.
| Name | Required | Description | Default |
|---|---|---|---|
| objectName | Yes | Salesforce object API name (e.g. 'Account', 'Contact', 'Opportunity', 'My_Custom_Object__c') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should carry the burden of behavioral disclosure. It mentions using the REST API describe endpoint and lists the returned attributes, which is helpful, but it does not explicitly state that this is a read-only operation, whether authentication is required, or any limiting constraints. The description is acceptable but not richly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the main purpose and immediately states the return content. Every word adds value, with no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description is complete: it explains what the tool does, how it works (via describe endpoint), and what it returns. There are no hidden complexities or missing prerequisites that would affect an agent's ability to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the only parameter (objectName) with an example and explanation, so schema coverage is 100%. The description does not add additional parameter semantics beyond confirming that it operates on a Salesforce object, which aligns with the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Query'), a precise resource ('all existing fields on a Salesforce object'), and the method ('using the REST API describe endpoint'). It clearly differentiates from siblings like salesforce_query (which queries records) and salesforce_create_custom_field (which creates fields).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: when field metadata is needed (names, labels, types, etc.), not when querying records. It does not explicitly name alternative tools or state exclusions, but the context is sufficiently clear for an agent to select it appropriately among the listed siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
salesforce_queryA
Execute a SOQL query against Salesforce and return the results. Use this to verify field values after deployment, check existing records, or validate configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| soql | Yes | SOQL query string. Example: 'SELECT Id, Name, Rating, Phone FROM Account WHERE Rating = \'Hot\' LIMIT 10' | |
| maxRecords | No | Maximum records to return (1–2000). Use LIMIT in your SOQL for precise control. Default: returns whatever SOQL specifies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies a read-only operation through 'query' but does not explicitly state it is safe, nor does it mention rate limits, error handling, or result pagination. Some important behavioral details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, and the second sentence adds useful context without redundancy. No fluff or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only two simple parameters and no output schema, but the description does not mention return value format, potential errors, or read-only guarantees. It covers the basic purpose and use cases but leaves some gaps for a complete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are well-documented in the schema. The description adds little beyond general purpose, not enhancing the parameter meaning beyond what the schema already provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Execute a SOQL query against Salesforce' and explicitly mentions it returns results. It distinguishes from siblings like salesforce_get_object_fields (metadata retrieval) and deployment tools by focusing on data querying.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete use cases: 'verify field values after deployment, check existing records, or validate configuration.' This gives clear context for when to use the tool, though it does not explicitly mention when not to use it or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
12 tool updates
v1.0.0- First observed
jira_get_story - First observed
jira_post_comment - First observed
jira_search_stories - First observed
jira_update_story_status - First observed
n8n_get_execution_status - First observed
n8n_trigger_workflow - First observed
salesforce_create_custom_field - First observed
salesforce_create_validation_rule - First observed
salesforce_deploy_metadata - First observed
salesforce_get_deployment_status - First observed
salesforce_get_object_fields - First observed
salesforce_query
TDQS
Each tool targets a distinct action on a specific resource: Jira stories, Salesforce metadata/objects, and n8n workflows. There is no overlap between tools like get_deployment_status and get_execution_status because they operate on different systems.
All tool names follow a consistent pattern of domain_verb_noun (e.g., jira_get_story, salesforce_create_custom_field, n8n_trigger_workflow). Even salesforce_query fits, as 'query' functions as both verb and noun without breaking the convention.
The 12 tools are well-scoped for a cross-platform integration server covering Jira, Salesforce, and n8n. Each tool serves a clear purpose with no redundancy, so the count feels appropriate for the domain.
The tool surface covers the core workflow: fetching Jira stories, searching, commenting, modifying Salesforce metadata, deploying, and triggering/polling n8n workflows. Minor gaps exist, such as no update/delete for validation rules or custom fields, but the main lifecycle is adequately covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- i3deployOAuthcom.i3deploy
Deploy & release tracking with native MCP — ask Claude what's in production and cut the release.
One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
- ZapierOAuthcom.zapier.mcp
Zapier MCP connects AI tools like Claude, ChatGPT, and Cursor to over 8,000 apps and 30,000+ actions, enabling AI to perform real-world tasks such as sending messages, searching data, scheduling events, and updating records. It acts as a translator between AI tools and apps, handling authentication, rate limits, and retries automatically, transforming AI from a conversational tool into a functional extension of your business stack.
Claude Code / MCP skills for the dev pipeline: discover, spec, design, build, ship, operate.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables Claude to interact with Jira through JQL (Jira Query Language) queries using the Model Control Protocol, allowing natural language access to Jira issue tracking and project management.-
- AlicenseAqualityBmaintenanceEnables Claude AI and other MCP clients to interact with Jira Server/Data Center through tools like listing issues, logging work, and updating issues, requiring user confirmation for write operations.8981MIT
- AlicenseAqualityCmaintenanceEnables management of n8n workflows, executions, credentials, tags, and variables via MCP tools. Supports stdio, Claude Code, and Claude Web with optional Authentik OAuth.22MIT
- AlicenseNot gradedqualityCmaintenanceAggregates GitHub, GitLab, and Figma development tools via MCP, enabling file access, code search, and design inspection. Also supports executing standalone tasks with Claude Code or Codex CLI.31MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pratapsfdc22-dev/salesforce-ai-agent-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server