Skip to content

Commit bf41e65

Browse files
authored
Merge branch 'main' into feature/elicitation
2 parents ebf2073 + 78bdd7b commit bf41e65

File tree

6 files changed

+215
-37
lines changed

6 files changed

+215
-37
lines changed

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ The following software is required to work on the spec:
1919
2. Clone your fork:
2020

2121
```bash
22-
git clone https://github.com/YOUR-USERNAME/specification.git
23-
cd specification
22+
git clone https://github.com/YOUR-USERNAME/modelcontextprotocol.git
23+
cd modelcontextprotocol
2424
```
2525

2626
3. Install dependencies:

docs/clients.mdx

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,15 @@ This page provides an overview of applications that support the Model Context Pr
1010
| Client | [Resources] | [Prompts] | [Tools] | [Sampling] | Roots | Notes |
1111
|---------------------------------------------|-------------|-----------|---------|------------|--------|-----------------------------------------------------------------------------|
1212
| [5ire][5ire] |||||| Supports tools. |
13+
| [AgentAI][AgentAI] |||||| Agent Library written in Rust with tools support |
14+
| [AgenticFlow][AgenticFlow] |||||| Supports tools, prompts, and resources for no-code AI agents and multi-agent workflows. |
1315
| [Amazon Q CLI][Amazon Q CLI] |||||| Supports prompts and tools. |
1416
| [Apify MCP Tester][Apify MCP Tester] |||||| Supports tools |
1517
| [BeeAI Framework][BeeAI Framework] |||||| Supports tools in agentic workflows. |
1618
| [BoltAI][BoltAI] |||||| Supports tools. |
19+
| [Claude.ai][Claude.ai] |||||| Supports tools, prompts, and resources for remote MCP servers. |
1720
| [Claude Code][Claude Code] |||||| Supports prompts and tools |
18-
| [Claude Desktop App][Claude Desktop] |||||| Supports tools, prompts, and resources. |
21+
| [Claude Desktop App][Claude Desktop] |||||| Supports tools, prompts, and resources for local and remote MCP servers. |
1922
| [Cline][Cline] |||||| Supports tools and resources. |
2023
| [Continue][Continue] |||||| Supports tools, prompts, and resources. |
2124
| [Copilot-MCP][CopilotMCP] |||||| Supports tools and resources. |
@@ -34,10 +37,12 @@ This page provides an overview of applications that support the Model Context Pr
3437
| [LibreChat][LibreChat] |||||| Supports tools for Agents |
3538
| [Lutra][Lutra] |||||| Supports any MCP server for reusable playbook creation. |
3639
| [mcp-agent][mcp-agent] |||| ⚠️ || Supports tools, server connection management, and agent workflows. |
40+
| [mcp-use][mcp-use] |||||| Support tools, resources, stdio & http connection, local llms-agents. |
3741
| [MCPHub][MCPHub] |||||| Supports tools, resources, and prompts in Neovim |
3842
| [MCPOmni-Connect][MCPOmni-Connect] |||||| Supports tools with agentic mode, ReAct, and orchestrator capabilities. |
3943
| [Microsoft Copilot Studio] |||||| Supports tools |
4044
| [MindPal][MindPal] |||||| Supports tools for no-code AI agents and multi-agent workflows. |
45+
| [Msty Studio][Msty Studio] |||||| Supports tools |
4146
| [OpenSumi][OpenSumi] |||||| Supports tools in OpenSumi |
4247
| [oterm][oterm] |||||| Supports tools, prompts and sampling for Ollama. |
4348
| [Postman][postman] |||||| Supports tools, resources, prompts, and sampling |
@@ -55,10 +60,13 @@ This page provides an overview of applications that support the Model Context Pr
5560
| [Zed][Zed] |||||| Prompts appear as slash commands |
5661

5762
[5ire]: https://github.com/nanbingxyz/5ire
63+
[AgentAI]: https://github.com/AdamStrojek/rust-agentai
64+
[AgenticFlow]: https://agenticflow.ai/mcp
5865
[Amazon Q CLI]: https://github.com/aws/amazon-q-developer-cli
5966
[Apify MCP Tester]: https://apify.com/jiri.spilka/tester-mcp-client
6067
[BeeAI Framework]: https://i-am-bee.github.io/beeai-framework
6168
[BoltAI]: https://boltai.com
69+
[Claude.ai]: https://claude.ai
6270
[Claude Code]: https://claude.ai/code
6371
[Claude Desktop]: https://claude.ai/download
6472
[Cline]: https://github.com/cline/cline
@@ -77,10 +85,12 @@ This page provides an overview of applications that support the Model Context Pr
7785
[LibreChat]: https://github.com/danny-avila/LibreChat
7886
[Lutra]: https://lutra.ai
7987
[mcp-agent]: https://github.com/lastmile-ai/mcp-agent
88+
[mcp-use]: https://github.com/pietrozullo/mcp-use
8089
[MCPHub]: https://github.com/ravitemer/mcphub.nvim
8190
[MCPOmni-Connect]: https://github.com/Abiorh001/mcp_omni_connect
8291
[Microsoft Copilot Studio]: https://learn.microsoft.com/en-us/microsoft-copilot-studio/agent-extend-action-mcp
8392
[MindPal]: https://mindpal.io
93+
[Msty Studio]: https://msty.ai
8494
[OpenSumi]: https://github.com/opensumi/core
8595
[oterm]: https://github.com/ggozad/oterm
8696
[Postman]: https://postman.com/downloads
@@ -114,6 +124,29 @@ This page provides an overview of applications that support the Model Context Pr
114124
- It is open-source and user-friendly, suitable for beginners.
115125
- Future support for MCP will be continuously improved.
116126

127+
### AgentAI
128+
129+
[AgentAI](https://github.com/AdamStrojek/rust-agentai) is a Rust library designed to simplify the creation of AI agents. The library includes seamless integration with MCP Servers.
130+
131+
[Example of MCP Server integration](https://github.com/AdamStrojek/rust-agentai/blob/master/examples/tools_mcp.rs)
132+
133+
**Key features:**
134+
- Multi-LLM – We support most LLM APIs (OpenAI, Anthropic, Gemini, Ollama, and all OpenAI API Compatible).
135+
- Built-in support for MCP Servers.
136+
- Create agentic flows in a type- and memory-safe language like Rust.
137+
138+
### AgenticFlow
139+
[AgenticFlow](https://agenticflow.ai/) is a no-code AI platform that helps you build agents that handle sales, marketing, and creative tasks around the clock. Connect 2,500+ APIs and 10,000+ tools securely via MCP.
140+
141+
**Key features:**
142+
- No-code AI agent creation and workflow building.
143+
- Access a vast library of 10,000+ tools and 2,500+ APIs through MCP.
144+
- Simple 3-step process to connect MCP servers.
145+
- Securely manage connections and revoke access anytime.
146+
147+
**Learn more:**
148+
- [AgenticFlow MCP Integration](https://agenticflow.ai/mcp)
149+
117150
### Amazon Q CLI
118151
[Amazon Q CLI](https://github.com/aws/amazon-q-developer-cli) is an open-source, agentic coding assistant for terminals.
119152

@@ -347,6 +380,16 @@ Programmatically assemble prompts for LLMs using [GenAIScript](https://microsoft
347380
- Implements every pattern defined in [Building Effective Agents](https://www.anthropic.com/research/building-effective-agents).
348381
- Supports workflow pause/resume signals, such as waiting for human feedback.
349382

383+
### mcp-use
384+
[mcp-use] is an open source python library to very easily connect any LLM to any MCP server both locally and remotely.
385+
386+
**Key features:**
387+
- Very simple interface to connect any LLM to any MCP.
388+
- Support the creation of custom agents, workflows.
389+
- Supports connection to multiple MCP servers simultaneously.
390+
- Supports all langchain supported models, also locally.
391+
- Offers efficient tool orchestration and search functionalities.
392+
350393
### MCPHub
351394
[MCPHub] is a powerful Neovim plugin that integrates MCP (Model Context Protocol) servers into your workflow.
352395

@@ -388,6 +431,18 @@ Programmatically assemble prompts for LLMs using [GenAIScript](https://microsoft
388431
**Learn more:**
389432
- [MindPal MCP Documentation](https://docs.mindpal.io/agent/mcp)
390433

434+
### Msty Studio
435+
[Msty Studio](https://msty.ai) is a privacy-first AI productivity platform that seamlessly integrates local and online language models (LLMs) into customizable workflows. Designed for both technical and non-technical users, Msty Studio offers a suite of tools to enhance AI interactions, automate tasks, and maintain full control over data and model behavior.
436+
437+
**Key features:**
438+
- **Toolbox & Toolsets**: Connect AI models to local tools and scripts using MCP-compliant configurations. Group tools into Toolsets to enable dynamic, multi-step workflows within conversations.
439+
- **Turnstiles**: Create automated, multi-step AI interactions, allowing for complex data processing and decision-making flows.
440+
- **Real-Time Data Integration**: Enhance AI responses with up-to-date information by integrating real-time web search capabilities.
441+
- **Split Chats & Branching**: Engage in parallel conversations with multiple models simultaneously, enabling comparative analysis and diverse perspectives.
442+
443+
**Learn more:**
444+
- [Msty Studio Documentation](https://docs.msty.studio/features/toolbox/tools)
445+
391446
### OpenSumi
392447
[OpenSumi](https://github.com/opensumi/core) is a framework helps you quickly build AI Native IDE products.
393448

docs/docs.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@
188188
"specification/draft/basic/lifecycle",
189189
"specification/draft/basic/transports",
190190
"specification/draft/basic/authorization",
191+
"specification/draft/basic/security_best_practices",
191192
{
192193
"group": "Utilities",
193194
"pages": [

docs/examples.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ These MCP servers are maintained by companies for their platforms:
4242

4343
- **[Axiom](https://github.com/axiomhq/mcp-server-axiom)** - Query and analyze logs, traces, and event data using natural language
4444
- **[Browserbase](https://github.com/browserbase/mcp-server-browserbase)** - Automate browser interactions in the cloud
45+
- **[BrowserStack](https://github.com/browserstack/mcp-server)** - Access BrowserStack's [Test Platform](https://www.browserstack.com/test-platform) to debug, write and fix tests, do accessibility testing and more.
4546
- **[Cloudflare](https://github.com/cloudflare/mcp-server-cloudflare)** - Deploy and manage resources on the Cloudflare developer platform
4647
- **[E2B](https://github.com/e2b-dev/mcp-server)** - Execute code in secure cloud sandboxes
4748
- **[Neon](https://github.com/neondatabase/mcp-server-neon)** - Interact with the Neon serverless Postgres platform

docs/specification/draft/basic/authorization.mdx

Lines changed: 39 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ as described in OAuth 2.0 Protected Resource Metadata ([RFC9728](https://datatra
9999

100100
MCP clients **MUST** be able to parse `WWW-Authenticate` headers and respond appropriately to `HTTP 401 Unauthorized` responses from the MCP server.
101101

102-
103102
#### 2.3.2 Server Metadata Discovery
104103

105104
MCP clients **MUST** follow the OAuth 2.0 Authorization Server Metadata protocol defined
@@ -247,17 +246,8 @@ own resources.
247246

248247
MCP servers **MUST NOT** accept or transit any other tokens.
249248

250-
### 2.8 Security Considerations
251-
252-
The following security requirements **MUST** be implemented:
253249

254-
1. Clients **MUST** securely store tokens following OAuth 2.0 best practices
255-
2. Servers **SHOULD** enforce token expiration and rotation
256-
3. All authorization endpoints **MUST** be served over HTTPS
257-
4. Servers **MUST** validate redirect URIs to prevent open redirect vulnerabilities
258-
5. Redirect URIs **MUST** be either localhost URLs or HTTPS URLs
259-
260-
### 2.9 Error Handling
250+
### 2.8 Error Handling
261251

262252
Servers **MUST** return appropriate HTTP status codes for authorization errors:
263253

@@ -267,35 +257,50 @@ Servers **MUST** return appropriate HTTP status codes for authorization errors:
267257
| 403 | Forbidden | Invalid scopes or insufficient permissions |
268258
| 400 | Bad Request | Malformed authorization request |
269259

270-
### 2.10 Implementation Requirements
260+
## 3. Security Considerations
261+
262+
Implementations **MUST** follow OAuth 2.1 security best practices as laid out in [Section 7. Security Considerations](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#name-security-considerations).
263+
264+
### 3.1 Token Theft
265+
Attackers who obtain tokens stored by the client, or tokens cached or logged on the server can access protected resources with
266+
requests that appear legitimate to resource servers.
267+
268+
Clients **MUST** implement secure token storage and follow OAuth best practices,
269+
as outlined in [OAuth 2.1, section 7.1](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-7.1).
270+
271+
MCP authorization servers SHOULD issue short-lived access tokens token to reduce the impact of leaked tokens. For public clients, MCP authorization servers MUST rotate refresh tokens as described in [Section 4.3.1 of OAuth 2.1](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-4.3.1).
272+
273+
### 3.2 Communication Security
274+
Implementations MUST follow [OAuth 2.1 section 1.5](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-1.5).
275+
276+
Specifically:
277+
1. All authorization server endpoints **MUST** be served over HTTPS.
278+
1. All redirect URIs **MUST** be either `localhost` or use HTTPS.
279+
280+
### 3.3 Authorization Code Protection
281+
282+
An attacker who has gained access to an authorization code contained in an authorization response can try to redeem the authorization code for an access token or otherwise make use of the authorization code. (Further described in [OAuth 2.1, section 7.5](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-7.5))
283+
284+
MCP clients **MUST** implement PKCE according to [OAuth 2.1 section 7.5.2](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-7.5.2). PKCE helps prevent authorization code interception and injection attacks by requiring clients to create a secret verifier-challenge pair, ensuring that only the original requestor can exchange an authorization code for tokens.
285+
271286

272-
1. Implementations **MUST** follow OAuth 2.1 security best practices
273-
1. PKCE is **REQUIRED** for all MCP clients and authorization servers
274-
1. MCP servers that also act as an AS:
275-
1. **SHOULD** implement token rotation for enhanced security
276-
1. **SHOULD** restrict token lifetimes based on security requirements
287+
### 3.3 Open Redirection
288+
An attacker may craft malicious redirect URIs to direct users to phishing sites.
277289

278-
## 3. Best Practices
290+
MCP clients **MUST** have redirect URIs registered with the authorization server.
279291

280-
#### 3.1 Local clients as Public OAuth 2.1 Clients
292+
Authorization servers **MUST** validate exact redirect URIs against pre-registered values to prevent redirection attacks.
281293

282-
We strongly recommend that local clients implement OAuth 2.1 as a public client:
294+
MCP clients **SHOULD** use and verify state parameters in the authorization code flow
295+
and discard any results that do not include or have a mis-match with the original state.
283296

284-
1. Utilizing code challenges (PKCE) for authorization requests to prevent interception
285-
attacks
286-
2. Implementing secure token storage appropriate for the local system
287-
3. Following token refresh best practices to maintain sessions
288-
4. Properly handling token expiration and renewal
297+
Authorization servers **MUST** take precautions to prevent redirecting user agents to untrusted URI's, following suggestions laid out in [OAuth 2.1, Section 7.12.2](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-7.12.2)
289298

290-
#### 3.2 Authorization Metadata Discovery
299+
Authorization servers **SHOULD** only automatically redirect the user agent if it trusts the redirection URI. If the URI is not trusted, the authorization server MAY inform the user and rely on the user to make the correct decision.
291300

292-
We strongly recommend that all clients implement metadata discovery. This reduces the
293-
need for users to provide endpoints manually or clients to fallback to the defined
294-
defaults.
301+
### 3.4 Confused Deputy Problem
295302

296-
#### 3.3 Dynamic Client Registration
303+
Attackers can exploit MCP servers acting as intermediaries to third-party APIs, leading to confused deputy vulnerabilities. By using stolen authorization codes, they can obtain access tokens without user consent. See [Security Best Practices 2.1](/specification/draft/basic/security_best_practices) for details.
297304

298-
Since clients do not know the set of MCP servers in advance, we strongly recommend the
299-
implementation of dynamic client registration. This allows applications to automatically
300-
register with the MCP server, and removes the need for users to obtain client ids
301-
manually.
305+
MCP proxy servers using static client IDs **MUST** obtain user consent for each dynamically
306+
registered client before forwarding to third-party authorization servers (which may require additional consent).

0 commit comments

Comments
 (0)