Skip to content

Commit 33c3215

Browse files
Merge branch 'main' into feat/tasks
2 parents 43f9cf4 + d847a00 commit 33c3215

File tree

4 files changed

+12
-6
lines changed

4 files changed

+12
-6
lines changed

blog/content/posts/2025-11-03-using-server-instructions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ It's like having a pile of notes on my garage workbench, each trying to explain
3838

3939
Similarly, for global instructions that you want the LLM to follow, it's best to inject them into the model's system prompt instead of including them in multiple tool descriptions or standalone prompts.
4040

41-
This is where **server instructions** come in. Server instructions give the server a way to inject information that the LLM should always read in order to understand how to use the server - independent of individual prompts, tools, or messages.
41+
This is where **server instructions** come in. [Server instructions](https://modelcontextprotocol.io/specification/draft/schema#initializeresult) give the server a way to inject information that the LLM should always read in order to understand how to use the server - independent of individual prompts, tools, or messages.
4242

4343
### A Note on Implementation Variability
4444

docs/specification/draft/changelog.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ the previous revision, [2025-06-18](/specification/2025-06-18).
1818

1919
1. Clarify that servers must respond with HTTP 403 Forbidden for invalid Origin headers in Streamable HTTP transport. (PR [#1439](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1439))
2020
2. Updated the [Security Best Practices guidance](https://modelcontextprotocol.io/specification/draft/basic/security_best_practices).
21+
3. Clarify that input validation errors should be returned as Tool Execution Errors rather than Protocol Errors to enable model self-correction ([SEP-1303](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1303)).
2122

2223
## Other schema changes
2324

docs/specification/draft/server/tools.mdx

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -396,14 +396,19 @@ Tools use two error reporting mechanisms:
396396

397397
1. **Protocol Errors**: Standard JSON-RPC errors for issues like:
398398
- Unknown tools
399-
- Invalid arguments
399+
- Malformed requests (requests that fail to satisfy [CallToolRequest schema](specification/draft/schema#calltoolrequest))
400400
- Server errors
401401

402402
2. **Tool Execution Errors**: Reported in tool results with `isError: true`:
403403
- API failures
404-
- Invalid input data
404+
- Input validation errors (e.g., date in wrong format, value out of range)
405405
- Business logic errors
406406

407+
**Tool Execution Errors** contain actionable feedback that language models can use to self-correct and retry with adjusted parameters.
408+
**Protocol Errors** indicate issues with the request structure itself that models are less likely to be able to fix.
409+
Clients **SHOULD** provide tool execution errors to language models to enable self-correction.
410+
Clients **MAY** provide protocol errors to language models, though these are less likely to result in successful recovery.
411+
407412
Example protocol error:
408413

409414
```json
@@ -417,7 +422,7 @@ Example protocol error:
417422
}
418423
```
419424

420-
Example tool execution error:
425+
Example tool execution error (input validation):
421426

422427
```json
423428
{
@@ -427,7 +432,7 @@ Example tool execution error:
427432
"content": [
428433
{
429434
"type": "text",
430-
"text": "Failed to fetch weather data: API rate limit exceeded"
435+
"text": "Invalid departure date: must be in the future. Current date is 08/08/2025."
431436
}
432437
],
433438
"isError": true

docs/style.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ body:has(#schema-reference) {
168168
font-family: var(--font-mono);
169169
font-weight: 700;
170170

171-
scroll-margin-top: 5rem;
171+
scroll-margin-top: 8rem;
172172
}
173173

174174
& > .tsd-comment,

0 commit comments

Comments
 (0)