Skip to content

ChainGraph API Documentation / @badaitech/chaingraph-trpc / server / MCPNodeBuilderService

Class: MCPNodeBuilderService ​

Defined in: packages/chaingraph-trpc/server/mcp/services/mcp-node-builder.service.ts:24

Constructors ​

Constructor ​

new MCPNodeBuilderService(nodeRegistry): MCPNodeBuilderService

Defined in: packages/chaingraph-trpc/server/mcp/services/mcp-node-builder.service.ts:25

Parameters ​

nodeRegistry ​

NodeRegistry

Returns ​

MCPNodeBuilderService

Methods ​

buildPromptNode() ​

buildPromptNode(server, prompt): INode

Defined in: packages/chaingraph-trpc/server/mcp/services/mcp-node-builder.service.ts:289

Parameters ​

server ​

MCPServer

prompt ​
_meta? ​

{[key: string]: unknown; }

See MCP specification for notes on _meta usage.

arguments? ​

object[]

A list of arguments to use for templating the prompt.

description? ​

string

An optional description of what this prompt provides

icons? ​

object[]

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

title? ​

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

Returns ​

INode


buildResourceNode() ​

buildResourceNode(server, resource): INode

Defined in: packages/chaingraph-trpc/server/mcp/services/mcp-node-builder.service.ts:190

Parameters ​

server ​

MCPServer

resource ​

{[key: string]: unknown; _meta?: {[key: string]: unknown; }; description?: string; icons?: object[]; mimeType?: string; name: string; title?: string; uri: string; }

_meta? ​

{[key: string]: unknown; }

See MCP specification for notes on _meta usage.

description? ​

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.

icons? ​

object[]

An optional list of icons for this resource.

mimeType? ​

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

title? ​

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.

|

{[key: string]: unknown; _meta?: {[key: string]: unknown; }; description?: string; mimeType?: string; name: string; title?: string; uriTemplate: string; }

_meta? ​

{[key: string]: unknown; }

See MCP specification for notes on _meta usage.

description? ​

string

A description of what this template is for.

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.

mimeType? ​

string

The MIME type for all resources that match this template. This should only be included if all resources matching this template have the same type.

name ​

string

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

title? ​

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

uriTemplate ​

string

A URI template (according to RFC 6570) that can be used to construct resource URIs.

Returns ​

INode


buildToolNode() ​

buildToolNode(server, tool): Promise<INode>

Defined in: packages/chaingraph-trpc/server/mcp/services/mcp-node-builder.service.ts:27

Parameters ​

server ​

MCPServer

tool ​
_meta? ​

{[key: string]: unknown; }

See MCP specification for notes on _meta usage.

annotations? ​

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

Optional additional tool information.

annotations.destructiveHint? ​

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

annotations.idempotentHint? ​

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

annotations.openWorldHint? ​

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

annotations.readOnlyHint? ​

boolean

If true, the tool does not modify its environment.

Default: false

annotations.title? ​

string

A human-readable title for the tool.

description? ​

string

A human-readable description of the tool.

icons? ​

object[]

An optional list of icons for this tool.

inputSchema ​

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

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

inputSchema.properties? ​

{[key: string]: unknown; }

inputSchema.required? ​

string[]

inputSchema.type ​

"object"

name ​

string

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

outputSchema? ​

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

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

outputSchema.properties? ​

{[key: string]: unknown; }

outputSchema.required? ​

string[]

outputSchema.type ​

"object"

title? ​

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

Returns ​

Promise<INode>

Licensed under BUSL-1.1