Skip to content

Commit 7b66da9

Browse files
authored
Merge branch 'main' into add-systemprompt-client
2 parents abb0c6a + 20e5a21 commit 7b66da9

File tree

14 files changed

+182
-41
lines changed

14 files changed

+182
-41
lines changed

docs/clients.mdx

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ This page provides an overview of applications that support the Model Context Pr
99

1010
<div id="feature-support-matrix-wrapper">
1111

12+
{/* prettier-ignore-start */}
13+
1214
| Client | [Resources] | [Prompts] | [Tools] | [Discovery][Discovery] | [Sampling] | Roots | Notes |
1315
| ------------------------------------------------ | ----------- | --------- | ------- | ---------------------- | ---------- | ----- | ----------------------------------------------------------------------------------------------- |
1416
| [5ire][5ire] ||||||| Supports tools. |
@@ -39,12 +41,13 @@ This page provides an overview of applications that support the Model Context Pr
3941
| [Klavis AI Slack/Discord/Web][Klavis AI] ||||||| Supports tools and resources. |
4042
| [LibreChat][LibreChat] ||||||| Supports tools for Agents |
4143
| [Lutra][Lutra] ||||||| Supports any MCP server for reusable playbook creation. |
42-
| [mcp-agent][mcp-agent] | | ||| ⚠️ | | Supports tools, server connection management, and agent workflows. |
44+
| [mcp-agent][mcp-agent] | | ||| ⚠️ | | Supports tools, prompts, resources, roots, server connection management, and agent workflows. |
4345
| [mcp-use][mcp-use] ||||||| Support tools, resources, stdio & http connection, local llms-agents. |
4446
| [MCPHub][MCPHub] ||||||| Supports tools, resources, and prompts in Neovim |
4547
| [MCPOmni-Connect][MCPOmni-Connect] ||||||| Supports tools with agentic mode, ReAct, and orchestrator capabilities. |
4648
| [Microsoft Copilot Studio] ||||||| Supports tools |
4749
| [MindPal][MindPal] ||||||| Supports tools for no-code AI agents and multi-agent workflows. |
50+
| [MooPoint][MooPoint] ||||||| Web-Hosted client with tool calling support |
4851
| [Msty Studio][Msty Studio] ||||||| Supports tools |
4952
| [NVIDIA Agent Intelligence toolkit][AIQ toolkit] ||||||| Supports tools in agentic workflows. |
5053
| [OpenSumi][OpenSumi] ||||||| Supports tools in OpenSumi |
@@ -68,6 +71,8 @@ This page provides an overview of applications that support the Model Context Pr
6871
| [Zed][Zed] ||||||| Prompts appear as slash commands |
6972
| [Zencoder][Zencoder] ||||||| Supports tools |
7073

74+
{/* prettier-ignore-end */}
75+
7176
[5ire]: https://github.com/nanbingxyz/5ire
7277
[AgentAI]: https://github.com/AdamStrojek/rust-agentai
7378
[AgenticFlow]: https://agenticflow.ai/mcp
@@ -101,6 +106,7 @@ This page provides an overview of applications that support the Model Context Pr
101106
[MCPOmni-Connect]: https://github.com/Abiorh001/mcp_omni_connect
102107
[Microsoft Copilot Studio]: https://learn.microsoft.com/en-us/microsoft-copilot-studio/agent-extend-action-mcp
103108
[MindPal]: https://mindpal.io
109+
[MooPoint]: https://moopoint.io
104110
[Msty Studio]: https://msty.ai
105111
[OpenSumi]: https://github.com/opensumi/core
106112
[oterm]: https://github.com/ggozad/oterm
@@ -538,6 +544,18 @@ Programmatically assemble prompts for LLMs using [GenAIScript](https://microsoft
538544

539545
- [MindPal MCP Documentation](https://docs.mindpal.io/agent/mcp)
540546

547+
### MooPoint
548+
[MooPoint](https://moopoint.io)
549+
550+
MooPoint is a web-based AI chat platform built for developers and advanced users, letting you interact with multiple large language models (LLMs) through a single, unified interface. Connect your own API keys (OpenAI, Anthropic, and more) and securely manage custom MCP server integrations.
551+
552+
**Key features:**
553+
- Accessible from any PC or smartphone—no installation required
554+
- Choose your preferred LLM provider
555+
- Supports `SSE`, `Streamable HTTP`, `npx`, and `uvx` MCP servers
556+
- OAuth and sampling support
557+
- New features added daily
558+
541559
### Msty Studio
542560

543561
[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.

docs/docs/concepts/prompts.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ Each prompt is defined with:
4141

4242
## Discovering prompts
4343

44-
Clients can discover available prompts through the `prompts/list` endpoint:
44+
Clients can discover available prompts by sending a `prompts/list` request:
4545

4646
```typescript
4747
// Request

docs/docs/concepts/resources.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ Clients can discover available resources through two main methods:
7878

7979
### Direct resources
8080

81-
Servers expose a list of concrete resources via the `resources/list` endpoint. Each resource includes:
81+
Servers expose a list of resources via the `resources/list` request. Each resource includes:
8282

8383
```typescript
8484
{

docs/docs/concepts/tools.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ Tools are designed to be **model-controlled**, meaning that tools are exposed fr
1515

1616
Tools in MCP allow servers to expose executable functions that can be invoked by clients and used by LLMs to perform actions. Key aspects of tools include:
1717

18-
- **Discovery**: Clients can list available tools through the `tools/list` endpoint
19-
- **Invocation**: Tools are called using the `tools/call` endpoint, where servers perform the requested operation and return results
18+
- **Discovery**: Clients can obtain a list of available tools by sending a `tools/list` request
19+
- **Invocation**: Tools are called using the `tools/call` request, where servers perform the requested operation and return results
2020
- **Flexibility**: Tools can range from simple calculations to complex API interactions
2121

2222
Like [resources](/docs/concepts/resources), tools are identified by unique names and can include descriptions to guide their usage. However, unlike resources, tools represent dynamic operations that can modify state or interact with external systems.

docs/docs/tools/inspector.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ A common way to start server packages from [NPM](https://npmjs.com) or [PyPi](ht
3030
```bash
3131
npx -y @modelcontextprotocol/inspector npx <package-name> <args>
3232
# For example
33-
npx -y @modelcontextprotocol/inspector npx server-postgres postgres://127.0.0.1/testdb
33+
npx -y @modelcontextprotocol/inspector npx @modelcontextprotocol/server-filesystem /Users/username/Desktop
3434
```
3535

3636
</Tab>

docs/favicon.svg

Lines changed: 8 additions & 9 deletions
Loading

docs/images/available-mcp-tools.png

-1.32 KB
Loading

docs/quickstart/server.mdx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,6 @@ Servers can connect to any client. We've chosen Claude for Desktop here for simp
2424

2525
</Note>
2626

27-
<Accordion title="Why Claude for Desktop and not Claude.ai?">
28-
29-
Because servers are locally run, MCP currently only supports desktop hosts. Remote hosts are in active development.
30-
31-
</Accordion>
32-
3327
### Core MCP Concepts
3428

3529
MCP servers can provide three main types of capabilities:

docs/quickstart/user.mdx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,6 @@ Follow the installation instructions.
1919

2020
If you already have Claude for Desktop, make sure it's on the latest version by clicking on the Claude menu on your computer and selecting "Check for Updates..."
2121

22-
<Accordion title="Why Claude for Desktop and not Claude.ai?">
23-
24-
Because servers are locally run, MCP currently only supports desktop hosts. Remote hosts are in active development.
25-
26-
</Accordion>
27-
2822
## 2. Add the Filesystem MCP Server
2923

3024
To add this filesystem functionality, we will be installing a pre-built [Filesystem MCP Server](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem) to Claude for Desktop. This is one of several current [reference servers](https://github.com/modelcontextprotocol/servers/tree/main) and many community-created servers.

docs/specification/draft/basic/authorization.mdx

Lines changed: 50 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -178,19 +178,58 @@ sequenceDiagram
178178
A->>C: Client Credentials
179179
end
180180
181-
Note over C: Generate PKCE parameters
182-
C->>B: Open browser with authorization URL + code_challenge
183-
B->>A: Authorization request
181+
Note over C: Generate PKCE parameters<br/>Include resource parameter
182+
C->>B: Open browser with authorization URL + code_challenge + resource
183+
B->>A: Authorization request with resource parameter
184184
Note over A: User authorizes
185185
A->>B: Redirect to callback with authorization code
186186
B->>C: Authorization code callback
187-
C->>A: Token request + code_verifier
187+
C->>A: Token request + code_verifier + resource
188188
A->>C: Access token (+ refresh token)
189189
C->>M: MCP request with access token
190190
M-->>C: MCP response
191191
Note over C,M: MCP communication continues with valid token
192192
```
193193

194+
#### Resource Parameter Implementation
195+
196+
MCP clients **MUST** implement Resource Indicators for OAuth 2.0 as defined in [RFC 8707](https://www.rfc-editor.org/rfc/rfc8707.html)
197+
to explicitly specify the target resource for which the token is being requested. The `resource` parameter:
198+
199+
1. **MUST** be included in both authorization requests and token requests.
200+
2. **MUST** identify the MCP server that the client intends to use the token with.
201+
3. **MUST** use the canonical URI of the MCP server as defined in [RFC 8707 Section 2](https://www.rfc-editor.org/rfc/rfc8707.html#name-access-token-request).
202+
203+
##### Canonical Server URI
204+
205+
For the purposes of this specification, the canonical URI of an MCP server is defined as the resource identifier as specified in
206+
[RFC 8707 Section 2](https://www.rfc-editor.org/rfc/rfc8707.html#section-2) and aligns with the `resource` parameter in
207+
[RFC 9728](https://datatracker.ietf.org/doc/html/rfc9728).
208+
209+
MCP clients **SHOULD** provide the most specific URI that they can for the MCP server they intend to access, following the guidance in [RFC 8707](https://www.rfc-editor.org/rfc/rfc8707). While the canonical form uses lowercase scheme and host components, implementations **SHOULD** accept uppercase scheme and host components for robustness and interoperability.
210+
211+
Examples of valid canonical URIs:
212+
213+
- `https://mcp.example.com/mcp`
214+
- `https://mcp.example.com`
215+
- `https://mcp.example.com:8443`
216+
- `https://mcp.example.com/server/mcp` (when path component is necessary to identify individual MCP server)
217+
218+
Examples of invalid canonical URIs:
219+
220+
- `mcp.example.com` (missing scheme)
221+
- `https://mcp.example.com#fragment` (contains fragment)
222+
223+
> **Note:** While both `https://mcp.example.com/` (with trailing slash) and `https://mcp.example.com` (without trailing slash) are technically valid absolute URIs according to [RFC 3986](https://www.rfc-editor.org/rfc/rfc3986), implementations **SHOULD** consistently use the form without the trailing slash for better interoperability unless the trailing slash is semantically significant for the specific resource.
224+
225+
For example, if accessing an MCP server at `https://mcp.example.com`, the authorization request would include:
226+
227+
```
228+
&resource=https%3A%2F%2Fmcp.example.com
229+
```
230+
231+
MCP clients **MUST** send this parameter regardless of whether authorization servers support it.
232+
194233
### Access Token Usage
195234

196235
#### Token Requirements
@@ -223,6 +262,8 @@ Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
223262

224263
MCP servers, acting in their role as an OAuth 2.1 resource server, **MUST** validate access tokens as described in
225264
[OAuth 2.1 Section 5.2](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-5.2).
265+
MCP servers **MUST** validate that access tokens were issued specifically for them as the intended audience,
266+
according to [RFC 8707 Section 2](https://www.rfc-editor.org/rfc/rfc8707.html#section-2).
226267
If validation fails, servers **MUST** respond according to
227268
[OAuth 2.1 Section 5.3](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-5.3)
228269
error handling requirements. Invalid or expired tokens **MUST** receive a HTTP 401
@@ -313,8 +354,11 @@ MCP servers **MUST** validate access tokens before processing the request, ensur
313354

314355
A MCP server **MUST** follow the guidelines in [OAuth 2.1 - Section 5.2](https://www.ietf.org/archive/id/draft-ietf-oauth-v2-1-12.html#section-5.2) to validate inbound tokens.
315356

316-
MCP servers **MUST** only accept tokens specifically intended for themselves.
357+
MCP servers **MUST** only accept tokens specifically intended for themselves and **MUST** reject tokens that do not include them in the audience claim or otherwise verify that they are the intended recipient of the token. See [Security Best Practices Section 2.2](/specification/draft/basic/security_best_practices#token-passthrough) for details.
317358

318359
If the MCP server makes requests to upstream APIs, it may act as an OAuth client to them. The access token used at the upstream API is a seperate token, issued by the upstream authorization server. The MCP server **MUST NOT** pass through the token it received from the MCP client.
319360

320-
If the authorization server supports the `resource` parameter, it is recommended that implementers follow [RFC 8707](https://www.rfc-editor.org/rfc/rfc8707.html) to prevent token misuse.
361+
MCP clients **MUST** implement and use the `resource` parameter as defined in [RFC 8707 - Resource Indicators for OAuth 2.0](https://www.rfc-editor.org/rfc/rfc8707.html)
362+
to explicitly specify the target resource for which the token is being requested. This requirement aligns with the recommendation in
363+
[RFC 9728 Section 7.4](https://datatracker.ietf.org/doc/html/rfc9728#section-7.4). This ensures that access tokens are bound to their intended resources and
364+
cannot be misused across different services.

0 commit comments

Comments
 (0)