Skip to content

Commit 56273d2

Browse files
committed
update README
1 parent 5c2faf4 commit 56273d2

File tree

1 file changed

+14
-18
lines changed

1 file changed

+14
-18
lines changed

README.md

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -219,23 +219,20 @@ resource := mcp.NewResource(
219219
"Project README",
220220
mcp.WithResourceDescription("The project's README file"),
221221
mcp.WithMIMEType("text/markdown"),
222-
mcp.WithAnnotations([]mcp.Role{mcp.RoleAssistant}, 0.8),
223222
)
224223

225224
// Add resource with its handler
226-
s.AddResource(resource, func(ctx context.Context, request mcp.ReadResourceRequest) ([]interface{}, error) {
225+
s.AddResource(resource, func(ctx context.Context, request mcp.ReadResourceRequest) ([]mcp.ResourceContents, error) {
227226
content, err := os.ReadFile("README.md")
228227
if err != nil {
229228
return nil, err
230229
}
231230

232-
return []interface{}{
231+
return []mcp.ResourceContents{
233232
mcp.TextResourceContents{
234-
ResourceContents: mcp.ResourceContents{
235-
URI: "docs://readme",
236-
MIMEType: "text/markdown",
237-
},
238-
Text: string(content),
233+
URI: "docs://readme",
234+
MIMEType: "text/markdown",
235+
Text: string(content),
239236
},
240237
}, nil
241238
})
@@ -250,31 +247,30 @@ template := mcp.NewResourceTemplate(
250247
"User Profile",
251248
mcp.WithTemplateDescription("Returns user profile information"),
252249
mcp.WithTemplateMIMEType("application/json"),
253-
mcp.WithTemplateAnnotations([]mcp.Role{mcp.RoleAssistant, mcp.RoleUser}, 0.5),
254250
)
255251

256252
// Add template with its handler
257-
s.AddResourceTemplate(template, func(ctx context.Context, request mcp.ReadResourceRequest) ([]interface{}, error) {
258-
userID := request.Params.URI // Extract ID from the full URI
253+
s.AddResourceTemplate(template, func(ctx context.Context, request mcp.ReadResourceRequest) ([]mcp.ResourceContents, error) {
254+
// Extract ID from the URI using regex matching
255+
// The server automatically matches URIs to templates
256+
userID := extractIDFromURI(request.Params.URI)
259257

260258
profile, err := getUserProfile(userID) // Your DB/API call here
261259
if err != nil {
262260
return nil, err
263261
}
264262

265-
return []interface{}{
263+
return []mcp.ResourceContents{
266264
mcp.TextResourceContents{
267-
ResourceContents: mcp.ResourceContents{
268-
URI: fmt.Sprintf("users://%s/profile", userID),
269-
MIMEType: "application/json",
270-
},
271-
Text: profile,
265+
URI: request.Params.URI,
266+
MIMEType: "application/json",
267+
Text: profile,
272268
},
273269
}, nil
274270
})
275271
```
276272

277-
The examples are simple but demonstrate the core concepts. Resources can be much more sophisticated - serving multiple contents, using annotations, integrating with databases or external APIs, etc.
273+
The examples are simple but demonstrate the core concepts. Resources can be much more sophisticated - serving multiple contents, integrating with databases or external APIs, etc.
278274
</details>
279275

280276
### Tools

0 commit comments

Comments
 (0)