|
1 | 1 | {
|
2 | 2 | "$schema": "http://json-schema.org/draft-07/schema#",
|
3 | 3 | "definitions": {
|
| 4 | + "Annotated": { |
| 5 | + "description": "Base for objects that include optional annotations for the client. The client can use annotations to inform how objects are used or displayed", |
| 6 | + "properties": { |
| 7 | + "annotations": { |
| 8 | + "properties": { |
| 9 | + "audience": { |
| 10 | + "description": "Describes who the intended customer of this object or data is.\n\nIt can include multiple entries to indicate content useful for multiple audiences (e.g., `[\"user\", \"assistant\"]`).", |
| 11 | + "items": { |
| 12 | + "$ref": "#/definitions/Role" |
| 13 | + }, |
| 14 | + "type": "array" |
| 15 | + }, |
| 16 | + "priority": { |
| 17 | + "description": "Describes how important this data is for operating the server.\n\nA value of 1 means \"most important,\" and indicates that the data is\neffectively required, while 0 means \"least important,\" and indicates that\nthe data is entirely optional.", |
| 18 | + "maximum": 1, |
| 19 | + "minimum": 0, |
| 20 | + "type": "number" |
| 21 | + } |
| 22 | + }, |
| 23 | + "type": "object" |
| 24 | + } |
| 25 | + }, |
| 26 | + "type": "object" |
| 27 | + }, |
4 | 28 | "BlobResourceContents": {
|
5 | 29 | "properties": {
|
6 | 30 | "blob": {
|
|
393 | 417 | "type": "string"
|
394 | 418 | },
|
395 | 419 | "role": {
|
396 |
| - "enum": [ |
397 |
| - "assistant", |
398 |
| - "user" |
399 |
| - ], |
400 |
| - "type": "string" |
| 420 | + "$ref": "#/definitions/Role" |
401 | 421 | },
|
402 | 422 | "stopReason": {
|
403 | 423 | "description": "The reason why sampling stopped, if known.",
|
|
418 | 438 | "EmbeddedResource": {
|
419 | 439 | "description": "The contents of a resource, embedded into a prompt or tool call result.\n\nIt is up to the client how best to render embedded resources for the benefit\nof the LLM and/or the user.",
|
420 | 440 | "properties": {
|
| 441 | + "annotations": { |
| 442 | + "properties": { |
| 443 | + "audience": { |
| 444 | + "description": "Describes who the intended customer of this object or data is.\n\nIt can include multiple entries to indicate content useful for multiple audiences (e.g., `[\"user\", \"assistant\"]`).", |
| 445 | + "items": { |
| 446 | + "$ref": "#/definitions/Role" |
| 447 | + }, |
| 448 | + "type": "array" |
| 449 | + }, |
| 450 | + "priority": { |
| 451 | + "description": "Describes how important this data is for operating the server.\n\nA value of 1 means \"most important,\" and indicates that the data is\neffectively required, while 0 means \"least important,\" and indicates that\nthe data is entirely optional.", |
| 452 | + "maximum": 1, |
| 453 | + "minimum": 0, |
| 454 | + "type": "number" |
| 455 | + } |
| 456 | + }, |
| 457 | + "type": "object" |
| 458 | + }, |
421 | 459 | "resource": {
|
422 | 460 | "anyOf": [
|
423 | 461 | {
|
|
502 | 540 | "ImageContent": {
|
503 | 541 | "description": "An image provided to or from an LLM.",
|
504 | 542 | "properties": {
|
| 543 | + "annotations": { |
| 544 | + "properties": { |
| 545 | + "audience": { |
| 546 | + "description": "Describes who the intended customer of this object or data is.\n\nIt can include multiple entries to indicate content useful for multiple audiences (e.g., `[\"user\", \"assistant\"]`).", |
| 547 | + "items": { |
| 548 | + "$ref": "#/definitions/Role" |
| 549 | + }, |
| 550 | + "type": "array" |
| 551 | + }, |
| 552 | + "priority": { |
| 553 | + "description": "Describes how important this data is for operating the server.\n\nA value of 1 means \"most important,\" and indicates that the data is\neffectively required, while 0 means \"least important,\" and indicates that\nthe data is entirely optional.", |
| 554 | + "maximum": 1, |
| 555 | + "minimum": 0, |
| 556 | + "type": "number" |
| 557 | + } |
| 558 | + }, |
| 559 | + "type": "object" |
| 560 | + }, |
505 | 561 | "data": {
|
506 | 562 | "description": "The base64-encoded image data.",
|
507 | 563 | "format": "byte",
|
|
584 | 640 | "capabilities": {
|
585 | 641 | "$ref": "#/definitions/ServerCapabilities"
|
586 | 642 | },
|
| 643 | + "instructions": { |
| 644 | + "description": "Instructions describing how to use the server and its features.\n\nThis can be used by clients to improve the LLM's understanding of available tools, resources, etc. It can be thought of like a \"hint\" to the model. For example, this information MAY be added to the system prompt.", |
| 645 | + "type": "string" |
| 646 | + }, |
587 | 647 | "protocolVersion": {
|
588 | 648 | "description": "The version of the Model Context Protocol that the server wants to use. This may not match the version that the client requested. If the client cannot support this version, it MUST disconnect.",
|
589 | 649 | "type": "string"
|
|
1295 | 1355 | ]
|
1296 | 1356 | },
|
1297 | 1357 | "role": {
|
1298 |
| - "enum": [ |
1299 |
| - "assistant", |
1300 |
| - "user" |
1301 |
| - ], |
1302 |
| - "type": "string" |
| 1358 | + "$ref": "#/definitions/Role" |
1303 | 1359 | }
|
1304 | 1360 | },
|
1305 | 1361 | "required": [
|
|
1416 | 1472 | "Resource": {
|
1417 | 1473 | "description": "A known resource that the server is capable of reading.",
|
1418 | 1474 | "properties": {
|
| 1475 | + "annotations": { |
| 1476 | + "properties": { |
| 1477 | + "audience": { |
| 1478 | + "description": "Describes who the intended customer of this object or data is.\n\nIt can include multiple entries to indicate content useful for multiple audiences (e.g., `[\"user\", \"assistant\"]`).", |
| 1479 | + "items": { |
| 1480 | + "$ref": "#/definitions/Role" |
| 1481 | + }, |
| 1482 | + "type": "array" |
| 1483 | + }, |
| 1484 | + "priority": { |
| 1485 | + "description": "Describes how important this data is for operating the server.\n\nA value of 1 means \"most important,\" and indicates that the data is\neffectively required, while 0 means \"least important,\" and indicates that\nthe data is entirely optional.", |
| 1486 | + "maximum": 1, |
| 1487 | + "minimum": 0, |
| 1488 | + "type": "number" |
| 1489 | + } |
| 1490 | + }, |
| 1491 | + "type": "object" |
| 1492 | + }, |
1419 | 1493 | "description": {
|
1420 | 1494 | "description": "A description of what this resource represents.\n\nThis can be used by clients to improve the LLM's understanding of available resources. It can be thought of like a \"hint\" to the model.",
|
1421 | 1495 | "type": "string"
|
|
1504 | 1578 | "ResourceTemplate": {
|
1505 | 1579 | "description": "A template description for resources available on the server.",
|
1506 | 1580 | "properties": {
|
| 1581 | + "annotations": { |
| 1582 | + "properties": { |
| 1583 | + "audience": { |
| 1584 | + "description": "Describes who the intended customer of this object or data is.\n\nIt can include multiple entries to indicate content useful for multiple audiences (e.g., `[\"user\", \"assistant\"]`).", |
| 1585 | + "items": { |
| 1586 | + "$ref": "#/definitions/Role" |
| 1587 | + }, |
| 1588 | + "type": "array" |
| 1589 | + }, |
| 1590 | + "priority": { |
| 1591 | + "description": "Describes how important this data is for operating the server.\n\nA value of 1 means \"most important,\" and indicates that the data is\neffectively required, while 0 means \"least important,\" and indicates that\nthe data is entirely optional.", |
| 1592 | + "maximum": 1, |
| 1593 | + "minimum": 0, |
| 1594 | + "type": "number" |
| 1595 | + } |
| 1596 | + }, |
| 1597 | + "type": "object" |
| 1598 | + }, |
1507 | 1599 | "description": {
|
1508 | 1600 | "description": "A description of what this template is for.\n\nThis can be used by clients to improve the LLM's understanding of available resources. It can be thought of like a \"hint\" to the model.",
|
1509 | 1601 | "type": "string"
|
|
1566 | 1658 | },
|
1567 | 1659 | "type": "object"
|
1568 | 1660 | },
|
| 1661 | + "Role": { |
| 1662 | + "description": "The sender or recipient of messages and data in a conversation.", |
| 1663 | + "enum": [ |
| 1664 | + "assistant", |
| 1665 | + "user" |
| 1666 | + ], |
| 1667 | + "type": "string" |
| 1668 | + }, |
1569 | 1669 | "Root": {
|
1570 | 1670 | "description": "Represents a root directory or file that the server can operate on.",
|
1571 | 1671 | "properties": {
|
|
1622 | 1722 | ]
|
1623 | 1723 | },
|
1624 | 1724 | "role": {
|
1625 |
| - "enum": [ |
1626 |
| - "assistant", |
1627 |
| - "user" |
1628 |
| - ], |
1629 |
| - "type": "string" |
| 1725 | + "$ref": "#/definitions/Role" |
1630 | 1726 | }
|
1631 | 1727 | },
|
1632 | 1728 | "required": [
|
|
1815 | 1911 | "TextContent": {
|
1816 | 1912 | "description": "Text provided to or from an LLM.",
|
1817 | 1913 | "properties": {
|
| 1914 | + "annotations": { |
| 1915 | + "properties": { |
| 1916 | + "audience": { |
| 1917 | + "description": "Describes who the intended customer of this object or data is.\n\nIt can include multiple entries to indicate content useful for multiple audiences (e.g., `[\"user\", \"assistant\"]`).", |
| 1918 | + "items": { |
| 1919 | + "$ref": "#/definitions/Role" |
| 1920 | + }, |
| 1921 | + "type": "array" |
| 1922 | + }, |
| 1923 | + "priority": { |
| 1924 | + "description": "Describes how important this data is for operating the server.\n\nA value of 1 means \"most important,\" and indicates that the data is\neffectively required, while 0 means \"least important,\" and indicates that\nthe data is entirely optional.", |
| 1925 | + "maximum": 1, |
| 1926 | + "minimum": 0, |
| 1927 | + "type": "number" |
| 1928 | + } |
| 1929 | + }, |
| 1930 | + "type": "object" |
| 1931 | + }, |
1818 | 1932 | "text": {
|
1819 | 1933 | "description": "The text content of the message.",
|
1820 | 1934 | "type": "string"
|
|
0 commit comments