Theia API Documentation v1.65.0
    Preparing search index...

    Contribution interface for extending the MCP server with frontend-only tools, resources, and prompts

    interface MCPFrontendContribution {
        getPrompt?(
            name: string,
            args: unknown,
        ):
            | {
                content: | {
                    _meta?: { [key: string]: unknown };
                    text: string;
                    type: "text";
                    [key: string]: unknown;
                }
                | {
                    _meta?: { [key: string]: unknown };
                    data: string;
                    mimeType: string;
                    type: "image";
                    [key: string]: unknown;
                }
                | {
                    _meta?: { [key: string]: unknown };
                    data: string;
                    mimeType: string;
                    type: "audio";
                    [key: string]: unknown;
                }
                | {
                    _meta?: { [key: string]: unknown };
                    description?: string;
                    icons?: {
                        mimeType?: string;
                        sizes?: string;
                        src: string;
                        [key: string]: unknown;
                    }[];
                    mimeType?: string;
                    name: string;
                    title?: string;
                    type: "resource_link";
                    uri: string;
                    [key: string]: unknown;
                }
                | {
                    _meta?: { [key: string]: unknown };
                    resource:
                        | {
                            _meta?: { [key: string]: unknown };
                            mimeType?: string;
                            text: string;
                            uri: string;
                            [key: string]: unknown;
                        }
                        | {
                            _meta?: { [key: string]: unknown };
                            blob: string;
                            mimeType?: string;
                            uri: string;
                            [key: string]: unknown;
                        };
                    type: "resource";
                    [key: string]: unknown;
                };
                role: "user"
                | "assistant";
                [key: string]: unknown;
            }[]
            | Promise<
                {
                    content: | {
                        _meta?: { [key: string]: unknown };
                        text: string;
                        type: "text";
                        [key: string]: unknown;
                    }
                    | {
                        _meta?: { [key: string]: unknown };
                        data: string;
                        mimeType: string;
                        type: "image";
                        [key: string]: unknown;
                    }
                    | {
                        _meta?: { [key: string]: unknown };
                        data: string;
                        mimeType: string;
                        type: "audio";
                        [key: string]: unknown;
                    }
                    | {
                        _meta?: { [key: string]: unknown };
                        description?: string;
                        icons?: {
                            mimeType?: string;
                            sizes?: string;
                            src: string;
                            [key: string]: unknown;
                        }[];
                        mimeType?: string;
                        name: string;
                        title?: string;
                        type: "resource_link";
                        uri: string;
                        [key: string]: unknown;
                    }
                    | {
                        _meta?: { [key: string]: unknown };
                        resource:
                            | {
                                _meta?: { [key: string]: unknown };
                                mimeType?: string;
                                text: string;
                                uri: string;
                                [key: string]: unknown;
                            }
                            | {
                                _meta?: { [key: string]: unknown };
                                blob: string;
                                mimeType?: string;
                                uri: string;
                                [key: string]: unknown;
                            };
                        type: "resource";
                        [key: string]: unknown;
                    };
                    role: "user"
                    | "assistant";
                    [key: string]: unknown;
                }[],
            >;
        getPrompts?(): | {
            _meta?: { [key: string]: unknown };
            arguments?: {
                description?: string;
                name: string;
                required?: boolean;
                [key: string]: unknown;
            }[];
            description?: string;
            icons?: {
                mimeType?: string;
                sizes?: string;
                src: string;
                [key: string]: unknown;
            }[];
            name: string;
            title?: string;
            [key: string]: unknown;
        }[]
        | Promise<
            {
                _meta?: { [key: string]: unknown };
                arguments?: {
                    description?: string;
                    name: string;
                    required?: boolean;
                    [key: string]: unknown;
                }[];
                description?: string;
                icons?: {
                    mimeType?: string;
                    sizes?: string;
                    src: string;
                    [key: string]: unknown;
                }[];
                name: string;
                title?: string;
                [key: string]: unknown;
            }[],
        >;
        getResources?(): | {
            _meta?: { [key: string]: unknown };
            description?: string;
            icons?: {
                mimeType?: string;
                sizes?: string;
                src: string;
                [key: string]: unknown;
            }[];
            mimeType?: string;
            name: string;
            title?: string;
            uri: string;
            [key: string]: unknown;
        }[]
        | Promise<
            {
                _meta?: { [key: string]: unknown };
                description?: string;
                icons?: {
                    mimeType?: string;
                    sizes?: string;
                    src: string;
                    [key: string]: unknown;
                }[];
                mimeType?: string;
                name: string;
                title?: string;
                uri: string;
                [key: string]: unknown;
            }[],
        >;
        getTool?(
            name: string,
        ): undefined | ToolProvider | Promise<undefined | ToolProvider>;
        getTools?(): | {
            _meta?: { [key: string]: unknown };
            annotations?: {
                destructiveHint?: boolean;
                idempotentHint?: boolean;
                openWorldHint?: boolean;
                readOnlyHint?: boolean;
                title?: string;
                [key: string]: unknown;
            };
            description?: string;
            icons?: {
                mimeType?: string;
                sizes?: string;
                src: string;
                [key: string]: unknown;
            }[];
            inputSchema: {
                properties?: { [key: string]: unknown };
                required?: string[];
                type: "object";
                [key: string]: unknown;
            };
            name: string;
            outputSchema?: {
                properties?: { [key: string]: unknown };
                required?: string[];
                type: "object";
                [key: string]: unknown;
            };
            title?: string;
            [key: string]: unknown;
        }[]
        | Promise<
            {
                _meta?: { [key: string]: unknown };
                annotations?: {
                    destructiveHint?: boolean;
                    idempotentHint?: boolean;
                    openWorldHint?: boolean;
                    readOnlyHint?: boolean;
                    title?: string;
                    [key: string]: unknown;
                };
                description?: string;
                icons?: {
                    mimeType?: string;
                    sizes?: string;
                    src: string;
                    [key: string]: unknown;
                }[];
                inputSchema: {
                    properties?: { [key: string]: unknown };
                    required?: string[];
                    type: "object";
                    [key: string]: unknown;
                };
                name: string;
                outputSchema?: {
                    properties?: { [key: string]: unknown };
                    required?: string[];
                    type: "object";
                    [key: string]: unknown;
                };
                title?: string;
                [key: string]: unknown;
            }[],
        >;
        readResource?(uri: string): unknown;
    }
    Index

    Methods

    • Get specific prompt by name with arguments

      Parameters

      • name: string
      • args: unknown

      Returns
          | {
              content: | {
                  _meta?: { [key: string]: unknown };
                  text: string;
                  type: "text";
                  [key: string]: unknown;
              }
              | {
                  _meta?: { [key: string]: unknown };
                  data: string;
                  mimeType: string;
                  type: "image";
                  [key: string]: unknown;
              }
              | {
                  _meta?: { [key: string]: unknown };
                  data: string;
                  mimeType: string;
                  type: "audio";
                  [key: string]: unknown;
              }
              | {
                  _meta?: { [key: string]: unknown };
                  description?: string;
                  icons?: {
                      mimeType?: string;
                      sizes?: string;
                      src: string;
                      [key: string]: unknown;
                  }[];
                  mimeType?: string;
                  name: string;
                  title?: string;
                  type: "resource_link";
                  uri: string;
                  [key: string]: unknown;
              }
              | {
                  _meta?: { [key: string]: unknown };
                  resource:
                      | {
                          _meta?: { [key: string]: unknown };
                          mimeType?: string;
                          text: string;
                          uri: string;
                          [key: string]: unknown;
                      }
                      | {
                          _meta?: { [key: string]: unknown };
                          blob: string;
                          mimeType?: string;
                          uri: string;
                          [key: string]: unknown;
                      };
                  type: "resource";
                  [key: string]: unknown;
              };
              role: "user"
              | "assistant";
              [key: string]: unknown;
          }[]
          | Promise<
              {
                  content: | {
                      _meta?: { [key: string]: unknown };
                      text: string;
                      type: "text";
                      [key: string]: unknown;
                  }
                  | {
                      _meta?: { [key: string]: unknown };
                      data: string;
                      mimeType: string;
                      type: "image";
                      [key: string]: unknown;
                  }
                  | {
                      _meta?: { [key: string]: unknown };
                      data: string;
                      mimeType: string;
                      type: "audio";
                      [key: string]: unknown;
                  }
                  | {
                      _meta?: { [key: string]: unknown };
                      description?: string;
                      icons?: {
                          mimeType?: string;
                          sizes?: string;
                          src: string;
                          [key: string]: unknown;
                      }[];
                      mimeType?: string;
                      name: string;
                      title?: string;
                      type: "resource_link";
                      uri: string;
                      [key: string]: unknown;
                  }
                  | {
                      _meta?: { [key: string]: unknown };
                      resource:
                          | {
                              _meta?: { [key: string]: unknown };
                              mimeType?: string;
                              text: string;
                              uri: string;
                              [key: string]: unknown;
                          }
                          | {
                              _meta?: { [key: string]: unknown };
                              blob: string;
                              mimeType?: string;
                              uri: string;
                              [key: string]: unknown;
                          };
                      type: "resource";
                      [key: string]: unknown;
                  };
                  role: "user"
                  | "assistant";
                  [key: string]: unknown;
              }[],
          >

    • Get prompts provided by this contribution

      Returns
          | {
              _meta?: { [key: string]: unknown };
              arguments?: {
                  description?: string;
                  name: string;
                  required?: boolean;
                  [key: string]: unknown;
              }[];
              description?: string;
              icons?: {
                  mimeType?: string;
                  sizes?: string;
                  src: string;
                  [key: string]: unknown;
              }[];
              name: string;
              title?: string;
              [key: string]: unknown;
          }[]
          | Promise<
              {
                  _meta?: { [key: string]: unknown };
                  arguments?: {
                      description?: string;
                      name: string;
                      required?: boolean;
                      [key: string]: unknown;
                  }[];
                  description?: string;
                  icons?: {
                      mimeType?: string;
                      sizes?: string;
                      src: string;
                      [key: string]: unknown;
                  }[];
                  name: string;
                  title?: string;
                  [key: string]: unknown;
              }[],
          >

      • {
            _meta?: { [key: string]: unknown };
            arguments?: {
                description?: string;
                name: string;
                required?: boolean;
                [key: string]: unknown;
            }[];
            description?: string;
            icons?: {
                mimeType?: string;
                sizes?: string;
                src: string;
                [key: string]: unknown;
            }[];
            name: string;
            title?: string;
            [key: string]: unknown;
        }[]
        • [key: string]: unknown
        • Optional_meta?: { [key: string]: unknown }

          See MCP specification for notes on _meta usage.

        • Optionalarguments?: {
              description?: string;
              name: string;
              required?: boolean;
              [key: string]: unknown;
          }[]

          A list of arguments to use for templating the prompt.

        • Optionaldescription?: string

          An optional description of what this prompt provides

        • Optionalicons?: { mimeType?: string; sizes?: string; src: string; [key: string]: unknown }[]

          An optional list of icons for this prompt.

        • name: string

          Intended for programmatic or logical use, but used as a display name in past specs or fallback

        • Optionaltitle?: string

          Intended for UI and end-user contexts — optimized to be human-readable and easily understood, even by those unfamiliar with domain-specific terminology.

          If not provided, the name should be used for display (except for Tool, where annotations.title should be given precedence over using name, if present).

      • Promise<
            {
                _meta?: { [key: string]: unknown };
                arguments?: {
                    description?: string;
                    name: string;
                    required?: boolean;
                    [key: string]: unknown;
                }[];
                description?: string;
                icons?: {
                    mimeType?: string;
                    sizes?: string;
                    src: string;
                    [key: string]: unknown;
                }[];
                name: string;
                title?: string;
                [key: string]: unknown;
            }[],
        >
    • Get resources provided by this contribution

      Returns
          | {
              _meta?: { [key: string]: unknown };
              description?: string;
              icons?: {
                  mimeType?: string;
                  sizes?: string;
                  src: string;
                  [key: string]: unknown;
              }[];
              mimeType?: string;
              name: string;
              title?: string;
              uri: string;
              [key: string]: unknown;
          }[]
          | Promise<
              {
                  _meta?: { [key: string]: unknown };
                  description?: string;
                  icons?: {
                      mimeType?: string;
                      sizes?: string;
                      src: string;
                      [key: string]: unknown;
                  }[];
                  mimeType?: string;
                  name: string;
                  title?: string;
                  uri: string;
                  [key: string]: unknown;
              }[],
          >

      • {
            _meta?: { [key: string]: unknown };
            description?: string;
            icons?: {
                mimeType?: string;
                sizes?: string;
                src: string;
                [key: string]: unknown;
            }[];
            mimeType?: string;
            name: string;
            title?: string;
            uri: string;
            [key: string]: unknown;
        }[]
        • [key: string]: unknown
        • Optional_meta?: { [key: string]: unknown }

          See MCP specification for notes on _meta usage.

        • Optionaldescription?: string

          A description of what this resource represents.

          This 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.

        • Optionalicons?: { mimeType?: string; sizes?: string; src: string; [key: string]: unknown }[]

          An optional list of icons for this resource.

        • OptionalmimeType?: string

          The MIME type of this resource, if known.

        • name: string

          Intended for programmatic or logical use, but used as a display name in past specs or fallback

        • Optionaltitle?: string

          Intended for UI and end-user contexts — optimized to be human-readable and easily understood, even by those unfamiliar with domain-specific terminology.

          If not provided, the name should be used for display (except for Tool, where annotations.title should be given precedence over using name, if present).

        • uri: string

          The URI of this resource.

      • Promise<
            {
                _meta?: { [key: string]: unknown };
                description?: string;
                icons?: {
                    mimeType?: string;
                    sizes?: string;
                    src: string;
                    [key: string]: unknown;
                }[];
                mimeType?: string;
                name: string;
                title?: string;
                uri: string;
                [key: string]: unknown;
            }[],
        >
    • Get tools provided by this contribution

      Returns
          | {
              _meta?: { [key: string]: unknown };
              annotations?: {
                  destructiveHint?: boolean;
                  idempotentHint?: boolean;
                  openWorldHint?: boolean;
                  readOnlyHint?: boolean;
                  title?: string;
                  [key: string]: unknown;
              };
              description?: string;
              icons?: {
                  mimeType?: string;
                  sizes?: string;
                  src: string;
                  [key: string]: unknown;
              }[];
              inputSchema: {
                  properties?: { [key: string]: unknown };
                  required?: string[];
                  type: "object";
                  [key: string]: unknown;
              };
              name: string;
              outputSchema?: {
                  properties?: { [key: string]: unknown };
                  required?: string[];
                  type: "object";
                  [key: string]: unknown;
              };
              title?: string;
              [key: string]: unknown;
          }[]
          | Promise<
              {
                  _meta?: { [key: string]: unknown };
                  annotations?: {
                      destructiveHint?: boolean;
                      idempotentHint?: boolean;
                      openWorldHint?: boolean;
                      readOnlyHint?: boolean;
                      title?: string;
                      [key: string]: unknown;
                  };
                  description?: string;
                  icons?: {
                      mimeType?: string;
                      sizes?: string;
                      src: string;
                      [key: string]: unknown;
                  }[];
                  inputSchema: {
                      properties?: { [key: string]: unknown };
                      required?: string[];
                      type: "object";
                      [key: string]: unknown;
                  };
                  name: string;
                  outputSchema?: {
                      properties?: { [key: string]: unknown };
                      required?: string[];
                      type: "object";
                      [key: string]: unknown;
                  };
                  title?: string;
                  [key: string]: unknown;
              }[],
          >

      • {
            _meta?: { [key: string]: unknown };
            annotations?: {
                destructiveHint?: boolean;
                idempotentHint?: boolean;
                openWorldHint?: boolean;
                readOnlyHint?: boolean;
                title?: string;
                [key: string]: unknown;
            };
            description?: string;
            icons?: {
                mimeType?: string;
                sizes?: string;
                src: string;
                [key: string]: unknown;
            }[];
            inputSchema: {
                properties?: { [key: string]: unknown };
                required?: string[];
                type: "object";
                [key: string]: unknown;
            };
            name: string;
            outputSchema?: {
                properties?: { [key: string]: unknown };
                required?: string[];
                type: "object";
                [key: string]: unknown;
            };
            title?: string;
            [key: string]: unknown;
        }[]
        • [key: string]: unknown
        • Optional_meta?: { [key: string]: unknown }

          See MCP specification for notes on _meta usage.

        • Optionalannotations?: {
              destructiveHint?: boolean;
              idempotentHint?: boolean;
              openWorldHint?: boolean;
              readOnlyHint?: boolean;
              title?: string;
              [key: string]: unknown;
          }

          Optional additional tool information.

          • OptionaldestructiveHint?: boolean

            If true, the tool may perform destructive updates to its environment. If false, the tool performs only additive updates.

            (This property is meaningful only when readOnlyHint == false)

            Default: true

          • OptionalidempotentHint?: boolean

            If true, calling the tool repeatedly with the same arguments will have no additional effect on the its environment.

            (This property is meaningful only when readOnlyHint == false)

            Default: false

          • OptionalopenWorldHint?: boolean

            If true, this tool may interact with an "open world" of external entities. If false, the tool's domain of interaction is closed. For example, the world of a web search tool is open, whereas that of a memory tool is not.

            Default: true

          • OptionalreadOnlyHint?: boolean

            If true, the tool does not modify its environment.

            Default: false

          • Optionaltitle?: string

            A human-readable title for the tool.

        • Optionaldescription?: string

          A human-readable description of the tool.

        • Optionalicons?: { mimeType?: string; sizes?: string; src: string; [key: string]: unknown }[]

          An optional list of icons for this tool.

        • inputSchema: {
              properties?: { [key: string]: unknown };
              required?: string[];
              type: "object";
              [key: string]: unknown;
          }

          A JSON Schema object defining the expected parameters for the tool.

        • name: string

          Intended for programmatic or logical use, but used as a display name in past specs or fallback

        • OptionaloutputSchema?: {
              properties?: { [key: string]: unknown };
              required?: string[];
              type: "object";
              [key: string]: unknown;
          }

          An optional JSON Schema object defining the structure of the tool's output returned in the structuredContent field of a CallToolResult.

        • Optionaltitle?: string

          Intended for UI and end-user contexts — optimized to be human-readable and easily understood, even by those unfamiliar with domain-specific terminology.

          If not provided, the name should be used for display (except for Tool, where annotations.title should be given precedence over using name, if present).

      • Promise<
            {
                _meta?: { [key: string]: unknown };
                annotations?: {
                    destructiveHint?: boolean;
                    idempotentHint?: boolean;
                    openWorldHint?: boolean;
                    readOnlyHint?: boolean;
                    title?: string;
                    [key: string]: unknown;
                };
                description?: string;
                icons?: {
                    mimeType?: string;
                    sizes?: string;
                    src: string;
                    [key: string]: unknown;
                }[];
                inputSchema: {
                    properties?: { [key: string]: unknown };
                    required?: string[];
                    type: "object";
                    [key: string]: unknown;
                };
                name: string;
                outputSchema?: {
                    properties?: { [key: string]: unknown };
                    required?: string[];
                    type: "object";
                    [key: string]: unknown;
                };
                title?: string;
                [key: string]: unknown;
            }[],
        >