001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.juneau.bean.mcp.v20260728; 018 019/** 020 * JSON-RPC method names used by MCP over HTTP. 021 */ 022@SuppressWarnings({ 023 "java:S115" // Constant names mirror MCP protocol field names exactly (e.g., TOOLS_LIST = "tools/list"). 024}) 025public final class McpMethods { 026 027 private McpMethods() {} 028 029 /** Discover server identity and capabilities. */ 030 public static final String SERVER_DISCOVER = "server/discover"; 031 032 /** Liveness / keepalive. */ 033 public static final String PING = "ping"; 034 035 /** List tools. */ 036 public static final String TOOLS_LIST = "tools/list"; 037 038 /** Execute a tool. */ 039 public static final String TOOLS_CALL = "tools/call"; 040 041 /** List prompts. */ 042 public static final String PROMPTS_LIST = "prompts/list"; 043 044 /** Fetch a prompt. */ 045 public static final String PROMPTS_GET = "prompts/get"; 046 047 /** List resources. */ 048 public static final String RESOURCES_LIST = "resources/list"; 049 050 /** Read a resource. */ 051 public static final String RESOURCES_READ = "resources/read"; 052 053 /** List resource templates. */ 054 public static final String RESOURCES_TEMPLATES_LIST = "resources/templates/list"; 055 056 /** Complete a prompt argument or resource-template variable. */ 057 public static final String COMPLETION_COMPLETE = "completion/complete"; 058 059 /** 060 * Server-to-client duplex sampling request (MCP sampling). Never dispatched through 061 * {@code McpRevision} — flows over the {@code McpDuplexDispatcher}/{@code McpServerRequestHandler} seam. 062 */ 063 public static final String SAMPLING_CREATE_MESSAGE = "sampling/createMessage"; 064 065 /** 066 * Start a held-open notification stream (SEP-2575). Replaces {@code resources/subscribe}/ 067 * {@code resources/unsubscribe} and the old HTTP GET SSE endpoint. 068 */ 069 public static final String SUBSCRIPTIONS_LISTEN = "subscriptions/listen"; 070 071 /** Notification: a subscribed resource's content changed. Only deliverable inside a {@link #SUBSCRIPTIONS_LISTEN} stream. */ 072 public static final String NOTIFICATIONS_RESOURCES_UPDATED = "notifications/resources/updated"; 073 074 /** Notification: the resource list changed. Only deliverable inside a {@link #SUBSCRIPTIONS_LISTEN} stream. */ 075 public static final String NOTIFICATIONS_RESOURCES_LIST_CHANGED = "notifications/resources/list_changed"; 076 077 /** Notification: the tool list changed. Only deliverable inside a {@link #SUBSCRIPTIONS_LISTEN} stream. */ 078 public static final String NOTIFICATIONS_TOOLS_LIST_CHANGED = "notifications/tools/list_changed"; 079 080 /** Notification: the prompt list changed. Only deliverable inside a {@link #SUBSCRIPTIONS_LISTEN} stream. */ 081 public static final String NOTIFICATIONS_PROMPTS_LIST_CHANGED = "notifications/prompts/list_changed"; 082 083 /** Mandatory first frame on every {@link #SUBSCRIPTIONS_LISTEN} stream, echoing the honored filter. */ 084 public static final String NOTIFICATIONS_SUBSCRIPTIONS_ACKNOWLEDGED = "notifications/subscriptions/acknowledged"; 085}