Copyright | (C) 2025 Matthias Pall Gissurarson |
---|---|
License | MIT |
Maintainer | mpg@mpg.is |
Stability | experimental |
Portability | GHC |
Safe Haskell | Safe-Inferred |
Language | GHC2021 |
MCP.Protocol
Description
This module implements the JSON-RPC 2.0 protocol layer for MCP, including request/response handling, message parsing and encoding, and protocol-level error handling.
Synopsis
- data JSONRPCRequest = JSONRPCRequest {}
- data JSONRPCResponse = JSONRPCResponse {}
- data JSONRPCError = JSONRPCError {}
- data JSONRPCNotification = JSONRPCNotification {}
- data JSONRPCMessage
- data JSONRPCErrorInfo = JSONRPCErrorInfo {}
- data InitializeRequest = InitializeRequest {
- method :: Text
- params :: InitializeParams
- data InitializeParams = InitializeParams {}
- data PingRequest = PingRequest {
- method :: Text
- params :: Maybe PingParams
- data PingParams = PingParams {}
- data ListResourcesRequest = ListResourcesRequest {}
- data ListResourcesParams = ListResourcesParams {}
- data ListResourceTemplatesRequest = ListResourceTemplatesRequest {}
- data ListResourceTemplatesParams = ListResourceTemplatesParams {}
- data ReadResourceRequest = ReadResourceRequest {}
- data ReadResourceParams = ReadResourceParams {}
- data SubscribeRequest = SubscribeRequest {
- method :: Text
- params :: SubscribeParams
- data SubscribeParams = SubscribeParams {}
- data UnsubscribeRequest = UnsubscribeRequest {}
- data UnsubscribeParams = UnsubscribeParams {}
- data ListPromptsRequest = ListPromptsRequest {}
- data ListPromptsParams = ListPromptsParams {}
- data GetPromptRequest = GetPromptRequest {
- method :: Text
- params :: GetPromptParams
- data GetPromptParams = GetPromptParams {}
- data ListToolsRequest = ListToolsRequest {
- method :: Text
- params :: Maybe ListToolsParams
- data ListToolsParams = ListToolsParams {}
- data CallToolRequest = CallToolRequest {
- method :: Text
- params :: CallToolParams
- data CallToolParams = CallToolParams {}
- data SetLevelRequest = SetLevelRequest {
- method :: Text
- params :: SetLevelParams
- data SetLevelParams = SetLevelParams {}
- data CompleteRequest = CompleteRequest {
- method :: Text
- params :: CompleteParams
- data CompleteParams = CompleteParams {}
- data CompletionArgument = CompletionArgument {}
- data Reference
- data CreateMessageRequest = CreateMessageRequest {}
- data CreateMessageParams = CreateMessageParams {}
- data ListRootsRequest = ListRootsRequest {
- method :: Text
- params :: Maybe ListRootsParams
- data ListRootsParams = ListRootsParams {}
- data InitializeResult = InitializeResult {}
- data ListResourcesResult = ListResourcesResult {}
- data ListResourceTemplatesResult = ListResourceTemplatesResult {}
- data ReadResourceResult = ReadResourceResult {
- contents :: [ResourceContents]
- _meta :: Maybe Metadata
- data ListPromptsResult = ListPromptsResult {}
- data GetPromptResult = GetPromptResult {
- description :: Maybe Text
- messages :: [PromptMessage]
- _meta :: Maybe Metadata
- data ListToolsResult = ListToolsResult {}
- data CallToolResult = CallToolResult {}
- data CompleteResult = CompleteResult {}
- data CompletionResult = CompletionResult {}
- data CreateMessageResult = CreateMessageResult {}
- data ListRootsResult = ListRootsResult {}
- data CancelledNotification = CancelledNotification {
- method :: Text
- params :: CancelledParams
- data CancelledParams = CancelledParams {}
- data InitializedNotification = InitializedNotification {}
- data InitializedParams = InitializedParams {}
- data ProgressNotification = ProgressNotification {
- method :: Text
- params :: ProgressParams
- data ProgressParams = ProgressParams {
- progressToken :: ProgressToken
- progress :: Double
- total :: Maybe Double
- message :: Maybe Text
- data ResourceListChangedNotification = ResourceListChangedNotification {}
- data ResourceUpdatedNotification = ResourceUpdatedNotification {}
- data ResourceUpdatedParams = ResourceUpdatedParams {}
- data PromptListChangedNotification = PromptListChangedNotification {}
- data ToolListChangedNotification = ToolListChangedNotification {}
- data LoggingMessageNotification = LoggingMessageNotification {}
- data LoggingMessageParams = LoggingMessageParams {}
- data RootsListChangedNotification = RootsListChangedNotification {}
- data ClientRequest
- = InitializeReq InitializeRequest
- | PingReq PingRequest
- | ListResourcesReq ListResourcesRequest
- | ListResourceTemplatesReq ListResourceTemplatesRequest
- | ReadResourceReq ReadResourceRequest
- | SubscribeReq SubscribeRequest
- | UnsubscribeReq UnsubscribeRequest
- | ListPromptsReq ListPromptsRequest
- | GetPromptReq GetPromptRequest
- | ListToolsReq ListToolsRequest
- | CallToolReq CallToolRequest
- | SetLevelReq SetLevelRequest
- | CompleteReq CompleteRequest
- data ServerRequest
- data ClientNotification
- data ServerNotification
- = CancelledServerNotif CancelledNotification
- | ProgressServerNotif ProgressNotification
- | ResourceListChangedNotif ResourceListChangedNotification
- | ResourceUpdatedNotif ResourceUpdatedNotification
- | PromptListChangedNotif PromptListChangedNotification
- | ToolListChangedNotif ToolListChangedNotification
- | LoggingMessageNotif LoggingMessageNotification
JSON-RPC Types
data JSONRPCRequest Source #
A JSON-RPC request that expects a response
Constructors
JSONRPCRequest | |
Instances
data JSONRPCResponse Source #
A successful JSON-RPC response
Instances
data JSONRPCError Source #
A JSON-RPC error response
Constructors
JSONRPCError | |
Instances
data JSONRPCNotification Source #
A JSON-RPC notification (no response expected)
Instances
data JSONRPCMessage Source #
Any JSON-RPC message
Constructors
RequestMessage JSONRPCRequest | |
ResponseMessage JSONRPCResponse | |
ErrorMessage JSONRPCError | |
NotificationMessage JSONRPCNotification |
Instances
data JSONRPCErrorInfo Source #
JSON-RPC error information
Instances
Client Request Types
data InitializeRequest Source #
Initialize request
Constructors
InitializeRequest | |
Fields
|
Instances
data InitializeParams Source #
Initialize request parameters
Constructors
InitializeParams | |
Fields |
Instances
data PingRequest Source #
Ping request
Constructors
PingRequest | |
Fields
|
Instances
data PingParams Source #
Ping request parameters
Constructors
PingParams | |
Instances
FromJSON PingParams Source # | |
Defined in MCP.Protocol | |
ToJSON PingParams Source # | |
Defined in MCP.Protocol Methods toJSON :: PingParams -> Value # toEncoding :: PingParams -> Encoding # toJSONList :: [PingParams] -> Value # toEncodingList :: [PingParams] -> Encoding # omitField :: PingParams -> Bool # | |
Generic PingParams Source # | |
Defined in MCP.Protocol Associated Types type Rep PingParams :: Type -> Type # | |
Show PingParams Source # | |
Defined in MCP.Protocol Methods showsPrec :: Int -> PingParams -> ShowS # show :: PingParams -> String # showList :: [PingParams] -> ShowS # | |
Eq PingParams Source # | |
Defined in MCP.Protocol | |
type Rep PingParams Source # | |
Defined in MCP.Protocol type Rep PingParams = D1 ('MetaData "PingParams" "MCP.Protocol" "mcp-0.1.0.0-inplace" 'False) (C1 ('MetaCons "PingParams" 'PrefixI 'True) (S1 ('MetaSel ('Just "_meta") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Metadata)))) |
data ListResourcesRequest Source #
List resources request
Constructors
ListResourcesRequest | |
Fields
|
Instances
data ListResourcesParams Source #
List resources request parameters
Constructors
ListResourcesParams | |
Instances
data ListResourceTemplatesRequest Source #
List resource templates request
Constructors
ListResourceTemplatesRequest | |
Fields |
Instances
data ListResourceTemplatesParams Source #
List resource templates request parameters
Constructors
ListResourceTemplatesParams | |
Instances
data ReadResourceRequest Source #
Read resource request
Constructors
ReadResourceRequest | |
Fields
|
Instances
data ReadResourceParams Source #
Read resource request parameters
Constructors
ReadResourceParams | |
Instances
data SubscribeRequest Source #
Subscribe request
Constructors
SubscribeRequest | |
Fields
|
Instances
data SubscribeParams Source #
Subscribe request parameters
Constructors
SubscribeParams | |
Instances
data UnsubscribeRequest Source #
Unsubscribe request
Constructors
UnsubscribeRequest | |
Fields
|
Instances
data UnsubscribeParams Source #
Unsubscribe request parameters
Constructors
UnsubscribeParams | |
Instances
data ListPromptsRequest Source #
List prompts request
Constructors
ListPromptsRequest | |
Fields
|
Instances
data ListPromptsParams Source #
List prompts request parameters
Constructors
ListPromptsParams | |
Instances
data GetPromptRequest Source #
Get prompt request
Constructors
GetPromptRequest | |
Fields
|
Instances
data GetPromptParams Source #
Get prompt request parameters
Instances
data ListToolsRequest Source #
List tools request
Constructors
ListToolsRequest | |
Fields
|
Instances
data ListToolsParams Source #
List tools request parameters
Constructors
ListToolsParams | |
Instances
data CallToolRequest Source #
Call tool request
Constructors
CallToolRequest | |
Fields
|
Instances
data CallToolParams Source #
Call tool request parameters
Instances
data SetLevelRequest Source #
Set level request
Constructors
SetLevelRequest | |
Fields
|
Instances
data SetLevelParams Source #
Set level request parameters
Constructors
SetLevelParams | |
Fields |
Instances
data CompleteRequest Source #
Complete request
Constructors
CompleteRequest | |
Fields
|
Instances
data CompleteParams Source #
Complete request parameters
Constructors
CompleteParams | |
Fields |
Instances
data CompletionArgument Source #
Completion argument
Constructors
CompletionArgument | |
Instances
Reference (prompt or resource)
Constructors
PromptRef PromptReference | |
ResourceRef ResourceReference |
Instances
FromJSON Reference Source # | |
Defined in MCP.Protocol | |
ToJSON Reference Source # | |
Generic Reference Source # | |
Show Reference Source # | |
Eq Reference Source # | |
type Rep Reference Source # | |
Defined in MCP.Protocol type Rep Reference = D1 ('MetaData "Reference" "MCP.Protocol" "mcp-0.1.0.0-inplace" 'False) (C1 ('MetaCons "PromptRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PromptReference)) :+: C1 ('MetaCons "ResourceRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ResourceReference))) |
Server Request Types
data CreateMessageRequest Source #
Create message request
Constructors
CreateMessageRequest | |
Fields
|
Instances
data CreateMessageParams Source #
Create message request parameters
Constructors
CreateMessageParams | |
Fields
|
Instances
data ListRootsRequest Source #
List roots request
Constructors
ListRootsRequest | |
Fields
|
Instances
data ListRootsParams Source #
List roots request parameters
Constructors
ListRootsParams | |
Instances
Response Types
data InitializeResult Source #
Initialize result
Constructors
InitializeResult | |
Fields |
Instances
data ListResourcesResult Source #
List resources result
Constructors
ListResourcesResult | |
Instances
data ListResourceTemplatesResult Source #
List resource templates result
Constructors
ListResourceTemplatesResult | |
Fields
|
Instances
data ReadResourceResult Source #
Read resource result
Constructors
ReadResourceResult | |
Fields
|
Instances
data ListPromptsResult Source #
List prompts result
Constructors
ListPromptsResult | |
Instances
data GetPromptResult Source #
Get prompt result
Constructors
GetPromptResult | |
Fields
|
Instances
data ListToolsResult Source #
List tools result
Constructors
ListToolsResult | |
Instances
data CallToolResult Source #
Call tool result
Instances
data CompleteResult Source #
Complete result
Constructors
CompleteResult | |
Fields |
Instances
data CompletionResult Source #
Completion result inner type
Instances
data CreateMessageResult Source #
Create message result
Constructors
CreateMessageResult | |
Instances
data ListRootsResult Source #
List roots result
Instances
Notification Types
data CancelledNotification Source #
Cancelled notification
Constructors
CancelledNotification | |
Fields
|
Instances
data CancelledParams Source #
Cancelled notification parameters
Instances
data InitializedNotification Source #
Initialized notification
Constructors
InitializedNotification | |
Fields
|
Instances
data InitializedParams Source #
Initialized notification parameters
Constructors
InitializedParams | |
Instances
data ProgressNotification Source #
Progress notification
Constructors
ProgressNotification | |
Fields
|
Instances
data ProgressParams Source #
Progress notification parameters
Constructors
ProgressParams | |
Fields
|
Instances
data ResourceListChangedNotification Source #
Resource list changed notification
Constructors
ResourceListChangedNotification | |
Fields
|
Instances
data ResourceUpdatedNotification Source #
Resource updated notification
Constructors
ResourceUpdatedNotification | |
Fields |
Instances
data ResourceUpdatedParams Source #
Resource updated notification parameters
Constructors
ResourceUpdatedParams | |
Instances
data PromptListChangedNotification Source #
Prompt list changed notification
Constructors
PromptListChangedNotification | |
Fields
|
Instances
data ToolListChangedNotification Source #
Tool list changed notification
Constructors
ToolListChangedNotification | |
Fields
|
Instances
data LoggingMessageNotification Source #
Logging message notification
Constructors
LoggingMessageNotification | |
Fields
|
Instances
data LoggingMessageParams Source #
Logging message notification parameters
Constructors
LoggingMessageParams | |
Instances
data RootsListChangedNotification Source #
Roots list changed notification
Constructors
RootsListChangedNotification | |
Fields
|
Instances
Union Types
data ClientRequest Source #
Any client request
Constructors
Instances
data ServerRequest Source #
Any server request
Constructors
PingServerReq PingRequest | |
CreateMessageReq CreateMessageRequest | |
ListRootsReq ListRootsRequest |
Instances
data ClientNotification Source #
Any client notification
Constructors
CancelledNotif CancelledNotification | |
InitializedNotif InitializedNotification | |
ProgressNotif ProgressNotification | |
RootsListChangedNotif RootsListChangedNotification |
Instances
data ServerNotification Source #
Any server notification
Constructors