serve7-mcp-connectors
Provides a Salesforce CRM adapter for the connector library, enabling customer lookup and CRM record updates through the Serve7 tools.
Click on "Deploy 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., "@serve7-mcp-connectorslook up customer cust-1001 and show their open support tickets"
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.
Serve7 MCP Connector Library
Reusable MCP tools for Amazon Connect AI Agents and Bedrock AgentCore. Seven generic connectors — customer lookup, create a support ticket, check ticket status, schedule an appointment, update a CRM record, retrieve knowledge, and create a task — built once here, then reused across every Serve7 customer engagement instead of being wired up from scratch per project.
This is project #6 from the Fall 2026 co-op idea list ("Serve7 MCP Connector Library"). It's a working first version: every connector runs end to end today against an in-memory mock backend (no AWS account, no live CRM, no credentials needed to try it), with a clean seam for swapping in a real backend later.
Why an adapter, not a direct integration
Every connector's business logic (schema validation, what counts as an
error, what fields go in and out) lives in src/connectors/*.ts and never
talks to a concrete backend SDK directly. Instead it calls one of five small
interfaces in src/adapters/types.ts — CrmAdapter, TicketingAdapter,
SchedulingAdapter, KnowledgeAdapter, TaskAdapter. Today those are all
implemented in-memory (src/adapters/mock.ts). Tomorrow, connecting a real
Salesforce/ServiceNow/Connect-Cases/Bedrock-Knowledge-Base backend means
writing one new adapter class and flipping one switch statement
(src/adapters/index.ts) — zero changes to the connector code, its tests, or
the MCP tool definitions an agent sees. See docs/adding-a-real-adapter.md.
MCP client (Claude Desktop, Bedrock AgentCore, ...)
│ tool call: customer_lookup({ customerId: "cust-1001" })
▼
src/server.ts (stdio) or src/http-server.ts (deployed)
│ registers every connector as an MCP tool
▼
src/connectors/customer-lookup.ts
│ validates input (zod), calls adapters.crm.lookupCustomer(...)
▼
src/adapters/index.ts → mock.ts today, a real adapter laterRelated MCP server: Works With Agents MCP Server
Project layout
src/
connectors/ one file per MCP tool — schema + business logic only
adapters/ the CRM/ticketing/scheduling/knowledge/task interfaces,
plus the in-memory mock implementations
mock-data/ seed data the mock adapters serve
mcp-server-factory.ts registers every connector on an McpServer instance
server.ts stdio entrypoint (local dev, Claude Desktop, Claude Code)
http-server.ts Streamable-HTTP entrypoint (deployed, e.g. behind Lambda)
tests/ one test file per connector + a registry sanity test
deploy/ Dockerfile + AWS SAM template for a Lambda deployment
docs/ per-connector reference + how to add a real adapterRunning it locally
npm install
npm test # 29 tests, all against the mock adapters
npm run typecheck # strict TypeScript, zero `any` in connector code
npm start # stdio MCP server — Ctrl+C to stop
npm run start:http # HTTP MCP server on :8080 (curl http://localhost:8080/health)
npm run smoke # real MCP client over stdio, calls all 7 tools end to end
npm run smoke:http # same, over HTTP — start:http must be running firstWiring it into Claude Desktop / Claude Code
Point an MCP client at the stdio server, e.g. in Claude Desktop's
claude_desktop_config.json:
{
"mcpServers": {
"serve7-connectors": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/serve7-mcp-connectors/src/server.ts"]
}
}
}Then ask it something like "look up customer cust-1001" or "what knowledge
articles do we have on emergency close announcements?" — it'll call
customer_lookup / retrieve_knowledge against the mock data.
Deploying it for real use (e.g. from Bedrock AgentCore)
See deploy/README.md — builds a container-image Lambda behind an
IAM-authenticated Function URL via sam deploy.
Adding an 8th connector
Create
src/connectors/my-new-tool.tsusingdefineConnector()— copy the shape of an existing one, e.g.create-task.ts.Add it to the
CONNECTORSarray insrc/connectors/index.ts.Add a test file in
tests/.Document it in
docs/connectors.md.
server.ts, http-server.ts, and the registry test all pick it up
automatically — nothing else to touch.
What's deliberately out of scope for this first version
Per the original project brief, each connector should eventually also cover
authentication approach (done, at the adapter layer), a deployment template
(done, deploy/), and documentation (done, docs/) — all shipped. Not yet
built, and worth a fast-follow: a real adapter for at least one backend (so
this stops being all-mock), and wiring a live Bedrock AgentCore agent to call
it over the deployed HTTP endpoint end to end.
Available Tools
7 toolscreate_support_ticketCreate Support TicketA
File a new support ticket for a customer when their issue can't be resolved in the current interaction. Use retrieve_status afterward to check progress on a ticket already created.
| Name | Required | Description | Default |
|---|---|---|---|
| subject | Yes | Short one-line summary of the issue | |
| priority | No | Urgency; use 'urgent' only for active outages or safety issues | normal |
| customerId | Yes | Internal customer ID the ticket is filed under | |
| description | Yes | Full details of the customer's issue |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The wording 'File a new support ticket' indicates a mutation action, but does not mention side effects, auth requirements, idempotency, or what the returned response looks like. The statement about using retrieve_status afterward adds a little context about lifecycle, but falls short of explaining the immediate behavior of this call.
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 with no verbosity: the first states the action and trigger, the second gives a useful next-step hint. Information is front-loaded—the action is in the first word—and every sentence 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?
The description gives the trigger condition and a follow-up instruction, but no output schema exists to state the returned ticket ID or other result fields. Since the agent will need an identifier to call retrieve_status afterward, this gap is not entirely covered. Still, the essential context for the creation decision is present.
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 describes all 4 parameters with high coverage, so the baseline is 3. The description doesn't add any new details about just for those fields; it only paraphrases the concept of a support ticket. It correctly fits the semantic framing of 'customer', but the schema still holds the detailed meaning.
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 names a specific verb and resource—'File a new support ticket'—and scopes it to the concrete case 'when their issue can't be resolved in the current interaction'. It also distinguishes the action from checking an existing ticket by referring to retrieve_status, so the tool's identity is easy to grasp and separate from its most natural sibling.
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 clearly states a condition for calling this tool: only when the issue can't be resolved in the current interaction. The second sentence implies that already-created tickets should be handled via retrieve_status rather than creating another one, giving the agent a basic decision rule. However, it does not compare against other siblings like create_task or schedule_appointment, leaving some nuance unspecified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_taskCreate TaskA
Create a follow-up task for a human teammate — e.g. 'call customer back with a refund confirmation' — when something needs manual handling after the AI-driven part of the interaction ends.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| dueDate | No | ISO-8601 date/time the task is due, if any | |
| assignee | Yes | Team or person the task should route to, e.g. 'billing-team' or an email | |
| description | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the behavioral burden, but it only describes intent, not observable behavior. It does not mention side effects such as whether the task is immediately visible, if assignees are notified, whether tasks can be updated later, or what permissions are required.
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 with no filler. It front-loads the action and purpose, and the example clarifies when this tool should be used.
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 gives a solid scenario but remains thin for actual invocation: half the parameters are undocumented, there is no output-schema guidance, no sibling differentiation, and no mention of side effects or lifecycle behavior. For a mutation tool with zero annotations, this is below what an agent needs to confidently use 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?
Schema description coverage is only 50%, covering dueDate and assignee, while the required 'title' and 'description' fields are undocumented. The description's example suggests possible task content but does not map the example to specific parameter values or explain how they should be composed.
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 names the action ('Create a follow-up task') and the resource ('a human teammate'), and grounds it with a concrete example about calling a customer back. It reads as distinct from the sibling create_support_ticket, since this is explicitly about assigning manual follow-up to a person after automation.
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 a clear when-to-use condition: use it when something needs manual handling after the AI-driven part of the interaction ends. It does not explicitly say when not to use it or name alternative sibling tools, but the intended context is reasonably evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customer_lookupCustomer LookupA
Look up a customer record by customer ID, email, or phone number. Returns account status and tier so an agent (human or AI) can personalize the interaction. Call this first in nearly every flow.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Customer's email address | ||
| phone | No | Customer's phone number, E.164 format preferred | |
| customerId | No | Internal customer ID, e.g. cust-1001 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must reveal behavioral traits. 'Look up' and 'returns' imply a read-only, non-mutating operation, and the mention of returned fields gives some transparency. However, it does not address what happens when no customer is found, how the tool behaves when multiple identifiers are provided, or whether any authorization is needed.
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 very concise: two sentences, a clear, simple lookup action, and a usage note. All sentences are used to fill a purpose-oriented or behavioral gap, with no fluff.
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?
Given the simple tool shape (had 3 params, no output schema), the description is a very complete level: names the keys, provides return values, and positions itself as the first step for a typical flow. You may still be missing the empty-result/one-of-three requirement, but that is an edge condition that is not normally needed to drive a first lookup.
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% and each field already has a clear description, so the baseline is appropriate. The text adds the concept of three comparable lookup keys, but it does not specify that at least one key is needed or what happens with conflicting/multiple inputs. The description adds meaningful context, but does not exceed the baseline.
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 ('look up'), a clear resource ('customer record'), and the exact lookup keys (customer ID, email, phone). It also previews the returned data (account status and tier), making the tool's purpose distinct from the sibling tools at a glance.
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 provides clear ordering guidance: 'Call this first in the context of nearly every flow,' which is an explicit usage directive. But it does not enumerate exclusions or explicitly reference an alternative tool, so the contrast with siblings (e.g., retrieve_status, update_crm_record) is left slightly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retrieve_knowledgeRetrieve KnowledgeA
Search the knowledge base for articles relevant to a customer's question. Returns the top matches with a relevance score and source URL so responses can be grounded and cited.
| Name | Required | Description | Default |
|---|---|---|---|
| topK | No | Max number of articles to return | |
| query | Yes | Natural-language question or topic to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It makes clear this is a read-only search that returns top matches with relevance scores and URLs, so the agent understands its output and non-destructive nature. It does not go into details like empty-result behavior or ranking beyond 'top matches'.
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 only two sentences and front-loads the core action before the output and use intent. Every sentence contributes meaningful information and there is no redundant filler.
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 two-parameter retrieval tool with no output schema, the description covers the core use case, the result format, and the purpose. It is slightly incomplete only in that it does not explicitly explain relevance cutoff, sorting, or tell the agent to prefer it over sibling lookup tools.
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 input schema already explains that 'query' is the natural-language search and 'topK' is the maximum result count. The description does not add further parameter-level guidance, so it stays at the baseline.
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?
Description uses a specific verb and resource: 'Search the knowledge base for articles'. It also states what the tool returns, including relevance score and source URL, making it clearly distinct from sibling tools like customer_lookup or create_support_ticket.
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 clear context for use: it is for answering a customer's question with grounded, citable knowledge articles. It does not explicitly mention sibling alternatives or when not to use the tool, so it misses the strict when-not guidance needed for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retrieve_statusRetrieve Ticket StatusA
Check the current status of a previously created support ticket by its ticket ID. Use this before telling a customer their issue is still 'in progress' vs resolved.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | Ticket ID returned by create_support_ticket, e.g. tkt-5001 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry this burden. It implies an read-only operation with 'Check' and gives examples of possible statuses, but it doesn't disclose error handling, permissions, or whether status updates propagate elsewhere. This is adequate for a simple retrieval 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 sentences, each with a distinct purpose: the first states the action, the second maps it to a real-world usage context. No padding 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?
For a single-parameter, no-output-schema, no-annotation tool, the description sufficiently covers purpose, input, and use context. It doesn't list all possible statuses, but an agent can infer the general return shape. This is complete enough for the tool's simplicity.
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%, with ticketId already described as 'Ticket ID returned by create_support_ticket, e.g. tkt-5001.' The description adds no further detail about the parameter, so 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 specifies a unique verb-resource pair: 'Check the current status of a previously created support ticket by its ticket ID.' This distinguishes it from siblings such as create_support_ticket, customer_lookup, and retrieve_knowledge through its object and action.
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 an explicit when-to-use scenario: 'Use this before telling a customer their issue is still in progress vs. resolved.' However, it doesn't name alternatives or exclusions, so the guidance isn't as complete as it could be.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule_appointmentSchedule AppointmentB
Book an appointment (call-back, in-branch visit, technician visit, etc.) for an existing customer.
| Name | Required | Description | Default |
|---|---|---|---|
| startTime | Yes | Appointment start time, ISO-8601, e.g. 2026-09-01T15:00:00Z | |
| customerId | Yes | Internal customer ID the appointment is booked for | |
| serviceType | Yes | What kind of appointment, e.g. 'callback', 'branch_visit', 'technician_visit' | |
| durationMinutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description itself carries the burden of explaining behavior. It only states the intent to book an appointment; it does not disclose side effects, validation requirements, conflict handling, persistence, or any other observable behavior beyond 'book'.
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?
A single well-structured sentence includes the action, allowed appointment categories, and the target audience. Every part adds useful information and there is no filler.
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 mutation product with no annotations and no output schema, the description is too thin. It leaves out expected results, potential failure modes, scheduling availability, and how duration interacts with the selected service type.
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 75%, so the schema handles most parameters. The description adds some semantic value by clarifying that the customer must already exist and by enumerating serviceType examples that match the schema's guidances.
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 ('Book') and resource ('appointment'), names concrete appointment types, and scopes to existing customers. This clearly distinguishes it from sibling tools like create_support_ticket and create_task.
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 given about when to use this tool versus alternatives. It does not mention when to choose a support ticket, how to validate an existing customer first, or any conditions that would rule out this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_crm_recordUpdate CRM RecordA
Patch fields on an existing customer's CRM record (e.g. after verifying a new phone number or email during a call). Only include the fields you want changed.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | ||
| No | |||
| phone | No | ||
| customerId | Yes | Internal customer ID to update | |
| accountStatus | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It effectively communicates partial/full patch semantics: 'Patch fields' and 'Only include the fields you want changed.' However, it omits side effects, authorization requirements, and behavior when invalid fields or unknown customer IDs are provided.
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 with no filler. The core purpose is front-loaded, the example is useful, and the 'only include fields you want changed' instruction 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?
For a simple patch tool with one required parameter and no nested objects, the description covers the main usage context and partial update behavior. Missing output/return info and permission notes are minor given the simplicity, but a small note on failure behavior would make it fully complete for agents.
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 only 20% (only customerId has a description), so the description must compensate. It names phone and email as example fields to update, but does not clarify the meaning of tier or accountStatus. The enums help partially, but a richer explanation of non-obvious parameters would have been beneficial.
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?
Description uses a specific verb ('Patch') and resource ('existing customer's CRM record'), clearly distinguishing it from sibling tools like create_support_ticket or customer_lookup. It communicates the intended operation and the record being modified 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?
Provides a concrete use case ('after verifying a new phone number or email during a call') and instructs to include only changed fields. It does not explicitly mention when not to use the tool, but the context and sibling tool names make the boundary reasonably clear.
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.
7 tool updates
v1.0.0- First observed
create_support_ticket - First observed
create_task - First observed
customer_lookup - First observed
retrieve_knowledge - First observed
retrieve_status - First observed
schedule_appointment - First observed
update_crm_record
TDQS
Scored across 7 tools
Each tool targets a clearly distinct resource and action: customer lookup, ticket creation/status, appointment scheduling, CRM patching, knowledge search, and task creation. There is no meaningful overlap or ambiguity between tool purposes.
Most tools follow the verb_noun pattern (create_support_ticket, retrieve_status, schedule_appointment, update_crm_record, retrieve_knowledge, create_task). The exception is customer_lookup, which reverses the order to noun_verb, creating a minor consistency deviation.
Seven tools is a well-scoped size for a customer support/CRM connector. Each tool covers a distinct workflow step, and none feel redundant or unnecessary.
The surface covers customer lookup, ticket creation and status, knowledge retrieval, and follow-up tasks, but ticket lifecycle is incomplete (no update or close) and appointment management lacks cancellation/rescheduling. These are notable gaps for a full customer support workflow.
Maintenance
Related MCP Connectors
Unified MCP Server is a remote MCP connector for AI agents and vertical AI products that provides access to 22,000+ authorized SaaS tools across 400+ integrations and 24 categories directly inside LLMs (Claude, GPT, Gemini, Cohere). Tools operate only on explicitly authorized customer connections, enabling agents to safely read and write against live third-party systems.
Let AI agents query data and act across all your business apps via MCP.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceDeploys and manages MCP tools on Amazon Bedrock AgentCore Runtime, enabling knowledge base retrieval and AWS infrastructure management through Streamlit applications.-
- AlicenseAqualityFmaintenanceProvides 14 MCP tools for AI agent infrastructure, enabling knowledge base queries, skill search, handoffs, blueprint validation, trust scoring, identity verification, SLA validation, and compliance checks.22MIT
- FlicenseNot gradedqualityCmaintenanceProvides Claude agents with CRM contact lookup, action logging, and prompt cost auditing tools. Includes a Streamlit UI to demo the same tools without an MCP client.-
- AlicenseNot gradedqualityCmaintenanceEnables an AI to perform customer support workflows by looking up customers, retrieving orders, and creating support tickets through MCP tools.4 npmX11 no permit persons clause