From 15db4f23ff156a472df379a26ab9233d0b89c0b2 Mon Sep 17 00:00:00 2001 From: Sim Pi Agent Date: Fri, 24 Jul 2026 04:15:42 +0000 Subject: [PATCH] feat(library): What Is an MCP Server? --- .../library/what-is-an-mcp-server/index.mdx | 124 ++++++++++++++++++ .../library/what-is-an-mcp-server/cover.jpg | Bin 0 -> 30745 bytes 2 files changed, 124 insertions(+) create mode 100644 apps/sim/content/library/what-is-an-mcp-server/index.mdx create mode 100644 apps/sim/public/library/what-is-an-mcp-server/cover.jpg diff --git a/apps/sim/content/library/what-is-an-mcp-server/index.mdx b/apps/sim/content/library/what-is-an-mcp-server/index.mdx new file mode 100644 index 00000000000..37102908960 --- /dev/null +++ b/apps/sim/content/library/what-is-an-mcp-server/index.mdx @@ -0,0 +1,124 @@ +--- +slug: what-is-an-mcp-server +title: 'What Is an MCP Server?' +description: 'Learn what an MCP server is, how Model Context Protocol discovery, tools, and transports work, and how Sim consumes and publishes MCP tools for AI agents.' +date: 2026-07-24 +updated: 2026-07-24 +authors: + - andrew +readingTime: 10 +tags: [MCP, AI Agents, Model Context Protocol, Sim] +ogImage: /library/what-is-an-mcp-server/cover.jpg +canonical: https://www.sim.ai/library/what-is-an-mcp-server +draft: false +faq: + - q: "What does an MCP server do?" + a: "An MCP server exposes tools, resources, and prompts through the Model Context Protocol so a compatible AI client can discover and use those capabilities through a standard interface." + - q: "How is an MCP server different from a REST API?" + a: "A REST integration usually requires client-specific endpoint, schema, and authentication code. MCP adds a standard discovery and invocation layer, allowing compatible clients to list a server's capabilities and call its tools through the same protocol." + - q: "Which MCP transport should I use?" + a: "Use stdio when the client and server run on the same machine. Use Streamable HTTP for remote or multi-client deployments. HTTP+SSE is the deprecated legacy transport and is mainly relevant for backwards compatibility." + - q: "Can Sim use and publish MCP tools?" + a: "Yes. Sim can connect to external MCP servers and execute their tools inside workflows. It can also expose deployed workflows as tools on a workflow MCP server for compatible clients to discover and call." +--- + +## TL;DR + +An MCP server is a program that exposes tools, data, and prompts to AI models through the [Model Context Protocol](https://modelcontextprotocol.io/specification/2025-06-18/architecture), a standard interface any MCP-compatible client can call. + +- An MCP server lets an LLM or agent [discover and call external capabilities](https://modelcontextprotocol.io/specification/2025-06-18/server/tools) without a developer hardcoding each one. +- [Anthropic introduced and open-sourced MCP in November 2024](https://www.anthropic.com/news/model-context-protocol). It uses [JSON-RPC 2.0 messages](https://modelcontextprotocol.io/specification/2025-06-18/basic) and is supported by clients including [Claude Desktop](https://modelcontextprotocol.io/quickstart/user), [Cursor](https://docs.cursor.com/context/model-context-protocol), and [VS Code](https://code.visualstudio.com/docs/copilot/chat/mcp-servers). +- MCP replaces dozens of bespoke API integrations with a [single client-server architecture](https://modelcontextprotocol.io/specification/2025-06-18/architecture), so compatible clients can use the same server. +- Sim works in both directions. It calls external MCP servers as tools, and it publishes deployed Sim workflows as tools that other AI systems can call through MCP. +- The [spec defines two current transports](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports), stdio for local processes and Streamable HTTP for remote calls. The older HTTP+SSE transport is deprecated and should not be used for new builds. +- The comparison table below shows how MCP servers, traditional API integrations, and Sim workflows-as-MCP-tools differ on setup effort, discovery, and reusability. + +## What is an MCP server? + +An MCP server is a program that exposes tools, data sources, and prompts to an AI model through the [Model Context Protocol](https://modelcontextprotocol.io/specification/2025-06-18/architecture), a shared standard for connecting language models to external capabilities. + +The point of an MCP server is to give an LLM or agent a consistent way to reach the outside world. Instead of writing custom glue for every API a model needs, you run an MCP server that advertises its capabilities in a format the model understands. An [MCP-compatible client](https://modelcontextprotocol.io/specification/2025-06-18/architecture) can then connect, list what the server offers, and call it. If you are new to the software on the other side of that connection, this guide to [AI agents and chatbots](https://www.sim.ai/library/ai-agent-vs-chatbot) explains why tool use matters. + +[Model Context Protocol](https://modelcontextprotocol.io) was [introduced and open-sourced by Anthropic in November 2024](https://www.anthropic.com/news/model-context-protocol) to solve a coordination problem. Each new tool, database, or service used to require its own integration written against a specific model or framework, and none of that work carried over. MCP defines one interface for all of them, built on [JSON-RPC 2.0](https://modelcontextprotocol.io/specification/2025-06-18/basic), so a server built once works with clients that speak the protocol. Adoption moved fast: [Claude Desktop](https://modelcontextprotocol.io/quickstart/user), [Cursor](https://docs.cursor.com/context/model-context-protocol), and [VS Code](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) all document MCP client support. + +A single MCP server can expose three kinds of capability. [**Tools**](https://modelcontextprotocol.io/specification/2025-06-18/server/tools) are actions the model can invoke, like sending an email or querying a database. [**Resources**](https://modelcontextprotocol.io/specification/2025-06-18/server/resources) are data the model can read, like files or records. [**Prompts**](https://modelcontextprotocol.io/specification/2025-06-18/server/prompts) are reusable templates the server offers to guide a task. The client asks the server what it supports, and the model or user decides what to call. + +Because the interface is standardized, the same MCP server can work across [compatible clients](https://modelcontextprotocol.io/specification/2025-06-18/architecture) without modification. A server you build for one agent can answer calls from another when it connects and negotiates a supported protocol version and capability set. + +## How does an MCP server differ from a traditional API integration? + +A traditional API integration forces a developer to hardcode each endpoint by hand, while an MCP server lets a client [discover the available tools at runtime](https://modelcontextprotocol.io/specification/2025-06-18/server/tools). When you connect to a REST API, you read the docs, map the request and response shapes, and write code specific to that one service. Connect to a second service, and you repeat the process with a different auth scheme and schema. An MCP server flips this. Through the protocol's [tool discovery flow](https://modelcontextprotocol.io/specification/2025-06-18/server/tools), a client queries the server and receives tool names, descriptions, and input schemas. It can then call those tools without the developer wiring each underlying endpoint into that client ahead of time. The server owns its tool definitions rather than forcing every client to maintain a field-by-field mapping. + +Authentication becomes a per-server concern from the client's perspective. Every conventional API may use a different scheme, which can mean new token handling, headers, and refresh logic for each integration. For HTTP transports, MCP defines an [authorization framework based on OAuth 2.1](https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization), so a client authenticates to the MCP server rather than directly implementing auth for every downstream tool it exposes. The server still has to manage its downstream credentials. Adding another tool behind an existing server does not necessarily require new auth code in the client. REST APIs can publish machine-readable descriptions through formats such as the [OpenAPI Specification](https://spec.openapis.org/oas/latest.html), but that description is separate from the invocation layer and is not shared automatically by every client. MCP makes capability discovery part of the protocol, which is what lets exposed tools travel across compatible clients. + +## How is an MCP server built? + +Three things determine how a server behaves once an agent connects to it. Discovery answers "what can you do?", tool wrapping defines the individual actions, and the transport layer decides how bytes move between client and server. Build all three well and any compatible client can use your server without a custom adapter. + +### Discovery + +[Discovery](https://modelcontextprotocol.io/specification/2025-06-18/architecture) lets a client query an MCP server for its available tools, resources, and prompts at connection time. The protocol provides [list operations and capability negotiation](https://modelcontextprotocol.io/specification/2025-06-18/basic/lifecycle), and a [tool list](https://modelcontextprotocol.io/specification/2025-06-18/server/tools#listing-tools) includes each tool's name, description, and input schema. An agent reads that response and decides which tool to call, so endpoint shapes do not have to be hardcoded into the client. [Servers can also notify clients that a tool list changed](https://modelcontextprotocol.io/specification/2025-06-18/server/tools#list-changed-notification) when both sides declare support for that capability. + +### Tool wrapping + +Tool wrapping turns an existing function, database query, or REST API into a callable MCP tool. You write a thin adapter that declares the tool's schema and maps the model's arguments onto whatever the underlying code expects. A weather API becomes a `get_forecast` tool, a SQL query becomes a `search_orders` tool, and the agent calls both through the same [MCP tool invocation interface](https://modelcontextprotocol.io/specification/2025-06-18/server/tools). Wrapping is where most of your build effort goes, since it defines the contract the model reasons about. + +### Transport options + +The [MCP transport specification](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports) defines two current transports. A third, the original HTTP+SSE design, is deprecated and should not be used for new builds. + +- [**stdio**](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#stdio) runs the server as a local subprocess and pipes JSON-RPC messages over standard input and output. Use it for local tools, desktop clients, and processes on the same machine where you want no network setup. Messages are newline-delimited UTF-8, and the server can write logs to stderr. +- [**Streamable HTTP**](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#streamable-http) exposes a single MCP endpoint that handles both directions. The client POSTs JSON-RPC requests to it, and the server returns either a standard HTTP response or an SSE stream. This is the transport for remote, multi-client, or horizontally scaled deployments. +- [**HTTP+SSE (legacy, deprecated)**](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#backwards-compatibility) was the original network design. It used separate SSE and POST endpoints. Streamable HTTP replaced it, and the specification retains compatibility guidance for clients and servers that still need to interoperate with older implementations. + +A point worth clearing up, because it trips up a lot of teams: "SSE" and "HTTP" are not two peer transports sitting alongside stdio. [SSE is a response mechanism used by Streamable HTTP](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#streamable-http), while "the SSE transport" commonly refers to the deprecated two-endpoint HTTP+SSE design. If you are building something new, use Streamable HTTP. If you maintain a legacy server, plan migration around the clients you need to support. + +You can wire the same set of wrapped tools to either current transport without rewriting the tools themselves, since the [protocol architecture separates server capabilities from transports](https://modelcontextprotocol.io/specification/2025-06-18/architecture). A common pattern is stdio for local development and Streamable HTTP for production. + +The [Sim MCP docs](https://docs.sim.ai/mcp) show how discovery, wrapping, and transport selection appear when you connect a server in practice, including which transport to pick for local versus deployed setups. + +## Can Sim act as both an MCP client and an MCP server? + +Yes. Sim works in both directions, which means you can consume external tools and expose your own from the same platform. + +As an MCP client, Sim calls external MCP servers as tools inside your workflows. You configure a server in a Sim workspace, select its tools for an agent or MCP block, and Sim can invoke those published tools. If you run an MCP server for a database, search index, or internal service, Sim discovers its tools and calls them alongside native integrations. You get access to the MCP ecosystem without writing a custom Sim integration for each server. + +As an MCP server, Sim can publish deployed workflows as tools on a workflow MCP server that other AI systems call. Build and deploy a workflow in Sim, add it to a workflow MCP server, and a compatible client can discover and invoke it. Whatever logic you assembled inside Sim, whether it chains models, calls APIs, or runs branching decisions, appears to the caller as a tool with a defined schema. For the broader build-and-deploy flow, see [how to create an AI agent with Sim](https://www.sim.ai/library/how-to-create-an-ai-agent). + +That two-way capability changes how you compose systems. You can connect Sim to a third-party MCP server, build a workflow on top of it, and then publish that workflow as an MCP tool for something else to consume. One Sim deployment can sit in the middle of a chain, acting as a client to the servers below it and a server to the clients above it. + +The practical payoff is reuse. You build a workflow once, deploy it, and compatible clients can call it without knowing how it works internally. You skip the usual step of writing and maintaining a separate API wrapper for each consumer. + +Setup for both roles lives in the [Sim MCP docs](https://docs.sim.ai/mcp), which walk through connecting external servers as tools and publishing deployed workflows through a workflow MCP server. + +## Why teams run MCP servers on Sim + +Standing up an MCP server yourself means writing the wrapper, hosting it, handling auth, and maintaining it as the specification evolves. Sim provides a workflow layer around that work, and three qualities matter for teams that need to control their deployment. + +**It is Apache 2.0 licensed.** Sim's repository ships under Apache 2.0, a permissive open-source license that allows use, modification, commercial distribution, and sublicensing and includes an express patent grant. The practical implications are covered in [Apache 2.0 vs fair-code](https://www.sim.ai/library/apache-2-0-vs-fair-code). + +**You can run it on your own infrastructure, including isolated environments.** A self-hosted Sim deployment keeps the workflow and MCP execution layer within infrastructure you control. That matters when exposed tools touch regulated or private data. Teams comparing deployment and governance models can also review these [open-source AI agent platforms](https://www.sim.ai/library/open-source-ai-agent-platforms). + +**Admins control access to MCP capabilities.** Sim's workspace permissions govern MCP server management, and permission-group settings can hide MCP deployment or disable MCP tools for selected users. Workflow execution traces record activity block by block, giving operators a detailed view of what the workflow did when a tool was called. + +You can build the workflow behind the server in natural language with Mothership, assemble it on the visual canvas, or define it through the API. The exposed MCP tool presents the same deployed workflow logic either way. + +## MCP server vs traditional API integration vs Sim workflow-as-MCP-tool + +Three approaches let an AI system reach an external tool, and they differ in how much work you do up front and how far the result travels. The table below compares them on setup effort, discovery support, reusability across clients, and who can call the result. + +| | Setup effort | Discovery support | Reusability across clients | Who can call it | +| --- | --- | --- | --- | --- | +| **MCP server** | Moderate. You wrap tools once behind the protocol. | [Built in](https://modelcontextprotocol.io/specification/2025-06-18/server/tools). Clients query the server for its available tools. | High. [Compatible clients](https://modelcontextprotocol.io/specification/2025-06-18/architecture) connect without a bespoke integration. | Any MCP client that supports the server's transport and protocol version. | +| **Traditional API integration** | High. You implement endpoints, auth flows, and schemas for each client integration. | Not required by REST itself. Discovery depends on documentation or an additional description format. | Low by default. Each new client needs integration code. | Applications with code written for that API. | +| **Sim workflow-as-MCP-tool** | Low. You build and deploy a workflow, then add it to a workflow MCP server. | Built in. Sim exposes the deployed workflow as a discoverable tool. | High. Compatible AI systems can connect to its MCP server. | MCP clients that can reach and authenticate to the Sim endpoint. | + +A traditional API integration can lock a tool to one application and force the next team to repeat the client work. An MCP server breaks that pattern by exposing tools through a discovery layer compatible clients can read, so one server serves many callers. A Sim workflow-as-MCP-tool pushes the effort down further: you build and deploy the logic in Sim, then publish it through a workflow MCP server. See [docs.sim.ai/mcp](https://docs.sim.ai/mcp) for setup details. + +## Conclusion + +MCP servers solve a real problem for anyone building agentic systems. Instead of writing a custom integration for every tool an agent needs, you expose those tools through one standard interface that compatible clients can discover and call. That standardization is why the protocol spread quickly after Anthropic released it. + +Sim gives you both directions in one place. You can wire external MCP servers into a workflow as tools, and you can expose deployed Sim workflows through an MCP server for other AI systems to call, on infrastructure you control under the Apache 2.0 license. + +Start by reading [docs.sim.ai/mcp](https://docs.sim.ai/mcp) and deploy your first MCP server today. diff --git a/apps/sim/public/library/what-is-an-mcp-server/cover.jpg b/apps/sim/public/library/what-is-an-mcp-server/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e87140b7528d403bfcd16c55f5c1f6c79c3a092c GIT binary patch literal 30745 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

bPy7)6hj}DmH?Eq z0H_-mywX|`+F*KH+?kv^Lz_TI`KmZm5jR(H#P$dX959isgj-+_p29!nBJRhF6&OUE zHA$ulX|TljX_^8L3%p%a(>MDs?37r2R$NwG&KtoDbL` z)N(ET+!5@j?tiJ;_Q`2Lxe)0X_^q_%H%aQ621nrHT_QW+;ms5Vh%RFxZiS5X&^%1n zHVcMNSHIiHaaQ-xl@tDGg0<4GSSOFvbHZSD6v9I*x}98Pa(+gt=*ti62pVQ7mlzy&RaDQ=IKOqz z5LSFEQ#?3XBXy6GpZ4NRRV{@!RASBQ_(eIp#SV7293${6 TH{g2BQ+5=$S@i`nk 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 literal 0 HcmV?d00001