Skip to content

Commit c7aec30

Browse files
committed
docs(seps): Mark SEP-2243 as Final
1 parent 8b26621 commit c7aec30

67 files changed

Lines changed: 150 additions & 19 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

blog/archetypes/default.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ author:
1313
- ""
1414

1515
tags: []
16-
1716
# Optional per-post image for JSON-LD and OpenGraph (falls back to site
1817
# og-image.png). Place under static/posts/<slug>/ and reference relative to
1918
# static/.

docs/community/sep-guidelines.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ flowchart TD
8585
3. **Update the SEP number**: Once your PR is created, rename the file using the PR number (e.g., PR #1850 becomes `1850-your-feature-title.md`) and update the SEP header.
8686

8787
4. **Find a Sponsor**: Tag a Core Maintainer or Maintainer from [the maintainer list](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/MAINTAINERS.md). Choose someone whose area relates to your proposal. Tips:
88+
8889
- Tag 1-2 relevant maintainers, not everyone
8990
- Share your PR in the relevant Discord channel
9091
- If no response after 2 weeks, ask in `#general`

docs/community/seps/2243-http-standardization.mdx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,14 +389,17 @@ HTTP parsers typically trim leading and trailing whitespace from header values.
389389
Clients MUST apply the following encoding rules in order:
390390

391391
1. **Type conversion**: Convert the parameter value to its string representation:
392+
392393
- `string`: Use the value as-is
393394
- `number`: Convert to decimal string representation (e.g., `42`, `3.14`)
394395
- `boolean`: Convert to lowercase `"true"` or `"false"`
395396

396397
2. **Whitespace check**: If the string starts or ends with whitespace (space or tab):
398+
397399
- Apply Base64 encoding (see below)
398400

399401
3. **ASCII validation**: Check if the string contains only valid ASCII characters (0x20-0x7E):
402+
400403
- If valid, proceed to step 4
401404
- If invalid (contains non-ASCII characters), apply Base64 encoding (see below)
402405

docs/docs.json

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,8 @@
412412
"seps/2085-governance-succession-and-amendment",
413413
"seps/2133-extensions",
414414
"seps/2148-contributor-ladder",
415-
"seps/2149-working-group-charter-template"
415+
"seps/2149-working-group-charter-template",
416+
"seps/2243-http-standardization"
416417
]
417418
},
418419
{
@@ -421,12 +422,6 @@
421422
"seps/2207-oidc-refresh-token-guidance",
422423
"seps/2260-Require-Server-requests-to-be-associated-with-Client-requests"
423424
]
424-
},
425-
{
426-
"group": "Draft",
427-
"pages": [
428-
"seps/2243-http-standardization"
429-
]
430425
}
431426
]
432427
},

docs/docs/develop/build-client.mdx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,11 +319,13 @@ You can find the complete `client.py` file [here](https://github.com/modelcontex
319319
## Common Customization Points
320320

321321
1. **Tool Handling**
322+
322323
- Modify `process_query()` to handle specific tool types
323324
- Add custom error handling for tool calls
324325
- Implement tool-specific response formatting
325326

326327
2. **Response Processing**
328+
327329
- Customize how tool results are formatted
328330
- Add response filtering or transformation
329331
- Implement custom logging
@@ -378,16 +380,19 @@ When you submit a query:
378380
## Best practices
379381

380382
1. **Error Handling**
383+
381384
- Always wrap tool calls in try-catch blocks
382385
- Provide meaningful error messages
383386
- Gracefully handle connection issues
384387

385388
2. **Resource Management**
389+
386390
- Use `AsyncExitStack` for proper cleanup
387391
- Close connections when done
388392
- Handle server disconnections
389393

390394
3. **Security**
395+
391396
- Store API keys securely in `.env`
392397
- Validate server responses
393398
- Be cautious with tool permissions
@@ -794,6 +799,7 @@ When you submit a query:
794799
## Best practices
795800

796801
1. **Error Handling**
802+
797803
- Use TypeScript's type system for better error detection
798804
- Wrap tool calls in try-catch blocks
799805
- Provide meaningful error messages
@@ -1408,12 +1414,14 @@ When you submit a query:
14081414
## Best practices
14091415

14101416
1. **Error Handling**
1417+
14111418
- Leverage Kotlin's type system to model errors explicitly
14121419
- Wrap external tool and API calls in `try-catch` blocks when exceptions are possible
14131420
- Provide clear and meaningful error messages
14141421
- Handle network timeouts and connection issues gracefully
14151422

14161423
2. **Security**
1424+
14171425
- Store API keys and secrets securely in `local.properties`, environment variables, or secret managers
14181426
- Validate all external responses to avoid unexpected or unsafe data usage
14191427
- Be cautious with permissions and trust boundaries when using tools
@@ -2021,16 +2029,19 @@ When you submit a query:
20212029
## Best practices
20222030

20232031
1. **Error Handling**
2032+
20242033
- Wrap tool calls in `begin`...`rescue` blocks
20252034
- Provide meaningful error messages
20262035
- Gracefully handle connection issues
20272036

20282037
2. **Resource Management**
2038+
20292039
- Always close the transport when done
20302040
- Use `begin`...`ensure` for proper cleanup
20312041
- Handle server disconnections
20322042

20332043
3. **Security**
2044+
20342045
- Store API keys securely in `.env`
20352046
- Validate server responses
20362047
- Be cautious with tool permissions

docs/docs/learn/architecture.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,7 @@ The request structure includes several important components:
373373
1. **`name`**: Must match exactly the tool name from the discovery response (`weather_current`). This ensures the server can correctly identify which tool to execute.
374374

375375
2. **`arguments`**: Contains the input parameters as defined by the tool's `inputSchema`. In this example:
376+
376377
- `location`: "San Francisco" (required parameter)
377378
- `units`: "imperial" (optional parameter, defaults to "metric" if not specified)
378379

docs/docs/learn/server-concepts.mdx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ Consider a personalized AI travel planner application, with three connected serv
260260
```
261261

262262
2. **User selects resources to include:**
263+
263264
- `calendar://my-calendar/June-2024` (from Calendar Server)
264265
- `travel://preferences/europe` (from Travel Server)
265266
- `travel://past-trips/Spain-2023` (from Travel Server)
@@ -269,10 +270,12 @@ Consider a personalized AI travel planner application, with three connected serv
269270
The AI first reads all selected resources to gather context - identifying available dates from the calendar, learning preferred airlines and hotel types from travel preferences, and discovering previously enjoyed locations from past trips.
270271

271272
Using this context, the AI then executes a series of Tools:
273+
272274
- `searchFlights()` - Queries airlines for NYC to Barcelona flights
273275
- `checkWeather()` - Retrieves climate forecasts for travel dates
274276

275277
The AI then uses this information to create the booking and following steps, requesting approval from the user where necessary:
278+
276279
- `bookHotel()` - Finds hotels within the specified budget
277280
- `createCalendarEvent()` - Adds the trip to the user's calendar
278281
- `sendEmail()` - Sends confirmation with trip details

docs/docs/tools/debugging.mdx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,12 +150,14 @@ To override the default variables or provide your own, you can specify an
150150
Common initialization problems:
151151

152152
1. **Path Issues**
153+
153154
- Incorrect server executable path
154155
- Missing required files
155156
- Permission problems
156157
- Try using an absolute path for `command`
157158

158159
2. **Configuration Errors**
160+
159161
- Invalid JSON syntax
160162
- Missing required fields
161163
- Type mismatches
@@ -262,6 +264,7 @@ Use the Network panel to inspect:
262264
### Development cycle
263265

264266
1. Initial Development
267+
265268
- Use [Inspector](/docs/tools/inspector) for basic testing
266269
- Implement core functionality
267270
- Add logging points
@@ -286,12 +289,14 @@ To test changes efficiently:
286289
### Logging strategy
287290

288291
1. **Structured Logging**
292+
289293
- Use consistent formats
290294
- Include context
291295
- Add timestamps
292296
- Track request IDs
293297

294298
2. **Error Handling**
299+
295300
- Log stack traces
296301
- Include error context
297302
- Track error patterns
@@ -308,6 +313,7 @@ To test changes efficiently:
308313
When debugging:
309314

310315
1. **Sensitive Data**
316+
311317
- Sanitize logs
312318
- Protect credentials
313319
- Mask personal information
@@ -325,12 +331,14 @@ For a full treatment of MCP attack vectors and mitigations, see
325331
When encountering issues:
326332

327333
1. **First Steps**
334+
328335
- Check server logs
329336
- Test with [Inspector](/docs/tools/inspector)
330337
- Review configuration
331338
- Verify environment
332339

333340
2. **Support Channels**
341+
334342
- [GitHub issues](https://github.com/modelcontextprotocol/modelcontextprotocol/issues)
335343
- [GitHub discussions](https://github.com/modelcontextprotocol/modelcontextprotocol/discussions)
336344

docs/docs/tools/inspector.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,13 @@ The Inspector provides several features for interacting with your MCP server:
119119
### Development workflow
120120

121121
1. Start Development
122+
122123
- Launch Inspector with your server
123124
- Verify basic connectivity
124125
- Check capability negotiation
125126

126127
2. Iterative testing
128+
127129
- Make server changes
128130
- Rebuild the server
129131
- Reconnect the Inspector

docs/docs/tutorials/security/security_best_practices.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -537,6 +537,7 @@ the following attack vectors are possible:
537537
1. The client connects to **Server A** and receives a session ID.
538538
1. The attacker obtains an existing session ID and sends a malicious
539539
event to **Server B** with said session ID.
540+
540541
- When a server supports
541542
[redelivery/resumable streams](/specification/latest/basic/transports#resumability-and-redelivery),
542543
deliberately terminating the request before receiving the response

0 commit comments

Comments
 (0)