Skip to content

Commit 81a54ec

Browse files
committed
Add ToolAnnotations support
1 parent 9330774 commit 81a54ec

File tree

72 files changed

+640
-395
lines changed

Some content is hidden

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

72 files changed

+640
-395
lines changed

samples/AspNetCoreSseServer/Tools/SampleLlmTool.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace TestServerWithHosting.Tools;
1010
[McpServerToolType]
1111
public static class SampleLlmTool
1212
{
13-
[McpServerTool("sampleLLM"), Description("Samples from an LLM using MCP's sampling feature")]
13+
[McpServerTool(Name = "sampleLLM"), Description("Samples from an LLM using MCP's sampling feature")]
1414
public static async Task<string> SampleLLM(
1515
IMcpServer thisServer,
1616
[Description("The prompt to send to the LLM")] string prompt,

samples/TestServerWithHosting/Tools/SampleLlmTool.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace TestServerWithHosting.Tools;
1010
[McpServerToolType]
1111
public static class SampleLlmTool
1212
{
13-
[McpServerTool("sampleLLM"), Description("Samples from an LLM using MCP's sampling feature")]
13+
[McpServerTool(Name = "sampleLLM"), Description("Samples from an LLM using MCP's sampling feature")]
1414
public static async Task<string> SampleLLM(
1515
IMcpServer thisServer,
1616
[Description("The prompt to send to the LLM")] string prompt,

src/ModelContextProtocol/AIContentExtensions.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public static AIContent ToAIContent(this Content content)
3333
Throw.IfNull(content);
3434

3535
AIContent ac;
36-
if (content is { Type: "image", MimeType: not null, Data: not null })
36+
if (content is { Type: "image" or "audio", MimeType: not null, Data: not null })
3737
{
3838
ac = new DataContent(Convert.FromBase64String(content.Data), content.MimeType);
3939
}
@@ -112,6 +112,7 @@ internal static Content ToContent(this AIContent content) =>
112112
Text = textContent.Text,
113113
Type = "text",
114114
},
115+
115116
DataContent dataContent => new()
116117
{
117118
Data = dataContent.GetBase64Data(),
@@ -121,6 +122,7 @@ internal static Content ToContent(this AIContent content) =>
121122
dataContent.HasTopLevelMediaType("audio") ? "audio" :
122123
"resource",
123124
},
125+
124126
_ => new()
125127
{
126128
Text = JsonSerializer.Serialize(content, McpJsonUtilities.DefaultOptions.GetTypeInfo(typeof(object))),

src/ModelContextProtocol/Client/McpClient.cs

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
using ModelContextProtocol.Shared;
77
using ModelContextProtocol.Utils.Json;
88
using Microsoft.Extensions.Logging;
9-
using Microsoft.Extensions.Logging.Abstractions;
109
using System.Text.Json;
1110

1211
namespace ModelContextProtocol.Client;

src/ModelContextProtocol/Client/McpClientExtensions.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ internal static (IList<ChatMessage> Messages, ChatOptions? Options) ToChatClient
469469
{
470470
message.Contents.Add(new TextContent(sm.Content.Text));
471471
}
472-
else if (sm.Content is { Type: "image", MimeType: not null, Data: not null })
472+
else if (sm.Content is { Type: "image" or "audio", MimeType: not null, Data: not null })
473473
{
474474
message.Contents.Add(new DataContent(Convert.FromBase64String(sm.Content.Data), sm.Content.MimeType));
475475
}
@@ -512,11 +512,11 @@ internal static CreateMessageResult ToCreateMessageResult(this ChatResponse chat
512512
{
513513
foreach (var lmc in lastMessage.Contents)
514514
{
515-
if (lmc is DataContent dc && dc.HasTopLevelMediaType("image"))
515+
if (lmc is DataContent dc && (dc.HasTopLevelMediaType("image") || dc.HasTopLevelMediaType("audio")))
516516
{
517517
content = new()
518518
{
519-
Type = "image",
519+
Type = dc.HasTopLevelMediaType("image") ? "image" : "audio",
520520
MimeType = dc.MediaType,
521521
Data = dc.GetBase64Data(),
522522
};

src/ModelContextProtocol/Client/McpClientTool.cs

+8-6
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,24 @@ namespace ModelContextProtocol.Client;
99
public sealed class McpClientTool : AIFunction
1010
{
1111
private readonly IMcpClient _client;
12-
private readonly Tool _tool;
1312

1413
internal McpClientTool(IMcpClient client, Tool tool)
1514
{
1615
_client = client;
17-
_tool = tool;
16+
ProtocolTool = tool;
1817
}
1918

19+
/// <summary>Gets the protocol <see cref="Tool"/> type for this instance.</summary>
20+
public Tool ProtocolTool { get; }
21+
2022
/// <inheritdoc/>
21-
public override string Name => _tool.Name;
23+
public override string Name => ProtocolTool.Name;
2224

2325
/// <inheritdoc/>
24-
public override string Description => _tool.Description ?? string.Empty;
26+
public override string Description => ProtocolTool.Description ?? string.Empty;
2527

2628
/// <inheritdoc/>
27-
public override JsonElement JsonSchema => _tool.InputSchema;
29+
public override JsonElement JsonSchema => ProtocolTool.InputSchema;
2830

2931
/// <inheritdoc/>
3032
public override JsonSerializerOptions JsonSerializerOptions => McpJsonUtilities.DefaultOptions;
@@ -37,7 +39,7 @@ internal McpClientTool(IMcpClient client, Tool tool)
3739
arguments as IReadOnlyDictionary<string, object?> ??
3840
arguments.ToDictionary();
3941

40-
CallToolResponse result = await _client.CallToolAsync(_tool.Name, argDict, cancellationToken).ConfigureAwait(false);
42+
CallToolResponse result = await _client.CallToolAsync(ProtocolTool.Name, argDict, cancellationToken).ConfigureAwait(false);
4143
return JsonSerializer.SerializeToElement(result, McpJsonUtilities.JsonContext.Default.CallToolResponse);
4244
}
4345
}

src/ModelContextProtocol/Configuration/McpServerBuilderExtensions.Tools.cs

+8-18
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,9 @@ public static partial class McpServerBuilderExtensions
3535
{
3636
if (toolMethod.GetCustomAttribute<McpServerToolAttribute>() is not null)
3737
{
38-
if (toolMethod.IsStatic)
39-
{
40-
builder.Services.AddSingleton(services => McpServerTool.Create(toolMethod, services: services));
41-
}
42-
else
43-
{
44-
builder.Services.AddSingleton(services => McpServerTool.Create(toolMethod, typeof(TTool), services: services));
45-
}
38+
builder.Services.AddSingleton((Func<IServiceProvider, McpServerTool>)(toolMethod.IsStatic ?
39+
services => McpServerTool.Create(toolMethod, new McpServerToolCreateOptions() { Services = services }) :
40+
services => McpServerTool.Create(toolMethod, typeof(TTool), new() { Services = services })));
4641
}
4742
}
4843

@@ -69,18 +64,13 @@ public static IMcpServerBuilder WithTools(this IMcpServerBuilder builder, params
6964
{
7065
if (toolType is not null)
7166
{
72-
foreach (var method in toolType.GetMethods(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance))
67+
foreach (var toolMethod in toolType.GetMethods(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance))
7368
{
74-
if (method.GetCustomAttribute<McpServerToolAttribute>() is not null)
69+
if (toolMethod.GetCustomAttribute<McpServerToolAttribute>() is not null)
7570
{
76-
if (method.IsStatic)
77-
{
78-
builder.Services.AddSingleton(services => McpServerTool.Create(method, services: services));
79-
}
80-
else
81-
{
82-
builder.Services.AddSingleton(services => McpServerTool.Create(method, toolType, services: services));
83-
}
71+
builder.Services.AddSingleton((Func<IServiceProvider, McpServerTool>)(toolMethod.IsStatic ?
72+
services => McpServerTool.Create(toolMethod, new McpServerToolCreateOptions() { Services = services }) :
73+
services => McpServerTool.Create(toolMethod, toolType, new() { Services = services })));
8474
}
8575
}
8676
}

src/ModelContextProtocol/Protocol/Transport/StdioServerTransport.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public sealed class StdioServerTransport : TransportBase, IServerTransport
2525
private readonly TextReader _stdInReader;
2626
private readonly Stream _stdOutStream;
2727

28-
private SemaphoreSlim _sendLock = new(1, 1);
28+
private readonly SemaphoreSlim _sendLock = new(1, 1);
2929
private Task? _readTask;
3030
private CancellationTokenSource? _shutdownCts;
3131

src/ModelContextProtocol/Protocol/Types/Annotated.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace ModelContextProtocol.Protocol.Types;
44

55
/// <summary>
66
/// Base for objects that include optional annotations for the client. The client can use annotations to inform how objects are used or displayed.
7-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
7+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
88
/// </summary>
99
public abstract record Annotated
1010
{

src/ModelContextProtocol/Protocol/Types/Annotations.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace ModelContextProtocol.Protocol.Types;
44

55
/// <summary>
66
/// Represents annotations that can be attached to content.
7-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
7+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
88
/// </summary>
99
public record Annotations
1010
{

src/ModelContextProtocol/Protocol/Types/Argument.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace ModelContextProtocol.Protocol.Types;
44

55
/// <summary>
66
/// Used for completion requests to provide additional context for the completion options.
7-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
7+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
88
/// </summary>
99
public class Argument
1010
{

src/ModelContextProtocol/Protocol/Types/CallToolRequestParams.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
/// <summary>
44
/// Used by the client to invoke a tool provided by the server.
5-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
5+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
66
/// </summary>
77
public class CallToolRequestParams : RequestParams
88
{

src/ModelContextProtocol/Protocol/Types/CallToolResponse.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
/// However, any errors in _finding_ the tool, an error indicating that the
1212
/// server does not support tool calls, or any other exceptional conditions,
1313
/// should be reported as an MCP error response.
14-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
14+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
1515
/// </summary>
1616
public class CallToolResponse
1717
{

src/ModelContextProtocol/Protocol/Types/Capabilities.cs

+7-7
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace ModelContextProtocol.Protocol.Types;
55

66
/// <summary>
77
/// Represents the capabilities that a client may support.
8-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
8+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
99
/// </summary>
1010
public class ClientCapabilities
1111
{
@@ -30,7 +30,7 @@ public class ClientCapabilities
3030

3131
/// <summary>
3232
/// Represents the roots capability configuration.
33-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
33+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
3434
/// </summary>
3535
public class RootsCapability
3636
{
@@ -47,7 +47,7 @@ public class RootsCapability
4747

4848
/// <summary>
4949
/// Represents the sampling capability configuration.
50-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
50+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
5151
/// </summary>
5252
public class SamplingCapability
5353
{
@@ -60,7 +60,7 @@ public class SamplingCapability
6060

6161
/// <summary>
6262
/// Represents the logging capability configuration.
63-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
63+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
6464
/// </summary>
6565
public class LoggingCapability
6666
{
@@ -76,7 +76,7 @@ public class LoggingCapability
7676

7777
/// <summary>
7878
/// Represents the prompts capability configuration.
79-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
79+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
8080
/// </summary>
8181
public class PromptsCapability
8282
{
@@ -101,7 +101,7 @@ public class PromptsCapability
101101

102102
/// <summary>
103103
/// Represents the resources capability configuration.
104-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
104+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
105105
/// </summary>
106106
public class ResourcesCapability
107107
{
@@ -150,7 +150,7 @@ public class ResourcesCapability
150150

151151
/// <summary>
152152
/// Represents the tools capability configuration.
153-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
153+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
154154
/// </summary>
155155
public class ToolsCapability
156156
{

src/ModelContextProtocol/Protocol/Types/CompleteRequestParams.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
/// <summary>
44
/// A request from the client to the server, to ask for completion options.
5-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
5+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
66
/// </summary>
77
public class CompleteRequestParams : RequestParams
88
{

src/ModelContextProtocol/Protocol/Types/CompleteResult.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace ModelContextProtocol.Protocol.Types;
44

55
/// <summary>
66
/// The server's response to a completion/complete request
7-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
7+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
88
/// </summary>
99
public class CompleteResult
1010
{

src/ModelContextProtocol/Protocol/Types/Completion.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace ModelContextProtocol.Protocol.Types;
44

55
/// <summary>
66
/// Represents a completion object in the server's response
7-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
7+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
88
/// </summary>
99
public class Completion
1010
{

src/ModelContextProtocol/Protocol/Types/Content.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ namespace ModelContextProtocol.Protocol.Types;
44

55
/// <summary>
66
/// Represents the content of a tool response.
7-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
7+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
88
/// There are multiple subtypes of content, depending on the "type" field, these are represented as separate classes.
99
/// </summary>
1010
public class Content
1111
{
1212
/// <summary>
13-
/// The type of content. This determines the structure of the content object. Can be "image", "text", "resource".
13+
/// The type of content. This determines the structure of the content object. Can be "image", "audio", "text", "resource".
1414
/// </summary>
1515

1616
[JsonPropertyName("type")]

src/ModelContextProtocol/Protocol/Types/ContextInclusion.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace ModelContextProtocol.Protocol.Types;
44

55
/// <summary>
66
/// A request to include context from one or more MCP servers (including the caller), to be attached to the prompt.
7-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
7+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
88
/// </summary>
99
[JsonConverter(typeof(JsonStringEnumConverter<ContextInclusion>))]
1010
public enum ContextInclusion

src/ModelContextProtocol/Protocol/Types/CreateMessageRequestParams.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
///
88
/// While these align with the protocol specification,
99
/// clients have full discretion over model selection and should inform users before sampling.
10-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
10+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
1111
/// </summary>
1212
public class CreateMessageRequestParams : RequestParams
1313
{

src/ModelContextProtocol/Protocol/Types/CreateMessageResult.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace ModelContextProtocol.Protocol.Types;
66
/// The client's response to a sampling/create_message request from the server.
77
/// The client should inform the user before returning the sampled message, to allow them to inspect the response (human in the loop)
88
/// and decide whether to allow the server to see it.
9-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
9+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
1010
/// </summary>
1111
public class CreateMessageResult
1212
{

src/ModelContextProtocol/Protocol/Types/EmptyResult.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
/// <summary>
44
/// An empty result object.
5-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
5+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
66
/// </summary>
77
public class EmptyResult
88
{

src/ModelContextProtocol/Protocol/Types/GetPromptRequestParams.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
/// <summary>
44
/// Used by the client to get a prompt provided by the server.
5-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
5+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
66
/// </summary>
77
public class GetPromptRequestParams : RequestParams
88
{

src/ModelContextProtocol/Protocol/Types/GetPromptResult.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
/// <summary>
44
/// The server's response to a prompts/get request from the client.
5-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
5+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
66
/// </summary>
77
public class GetPromptResult
88
{

src/ModelContextProtocol/Protocol/Types/Implementation.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace ModelContextProtocol.Protocol.Types;
44

55
/// <summary>
66
/// Describes the name and version of an MCP implementation.
7-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
7+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
88
/// </summary>
99
public class Implementation
1010
{

src/ModelContextProtocol/Protocol/Types/InitializeRequestParams.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace ModelContextProtocol.Protocol.Types;
44

55
/// <summary>
66
/// Parameters for an initialization request sent to the server.
7-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
7+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
88
/// </summary>
99
public class InitializeRequestParams : RequestParams
1010
{

src/ModelContextProtocol/Protocol/Types/InitializeResult.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace ModelContextProtocol.Protocol.Types;
44

55
/// <summary>
66
/// Result of the initialization request sent to the server.
7-
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/2024-11-05/schema.json">See the schema for details</see>
7+
/// <see href="https://github.com/modelcontextprotocol/specification/blob/main/schema/">See the schema for details</see>
88
/// </summary>
99
public record InitializeResult
1010
{

0 commit comments

Comments
 (0)