Merge pull request #120 from kalvinnchau/instruction-support

feat: add optional instructions field to server _oninitialize
This commit is contained in:
Justin Spahr-Summers 2025-01-13 18:04:00 +00:00 • committed by GitHub
commit f8e5faffaf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 0 deletions

View file

@ -38,6 +38,7 @@ test("should accept latest protocol version", async () => {
name: "test server",
version: "1.0",
},
instructions: "Test instructions",
});
sendPromiseResolve(undefined);
}
@ -57,6 +58,7 @@ test("should accept latest protocol version", async () => {
tools: {},
logging: {},
},
instructions: "Test instructions",
},
);

View file

@ -33,6 +33,11 @@ export type ServerOptions = ProtocolOptions & {
* Capabilities to advertise as being supported by this server.
*/
capabilities: ServerCapabilities;
/**
* Optional instructions describing how to use the server and its features.
*/
instructions?: string;
};
/**
@ -72,6 +77,7 @@ export class Server<
private _clientCapabilities?: ClientCapabilities;
private _clientVersion?: Implementation;
private _capabilities: ServerCapabilities;
private _instructions?: string;
/**
* Callback for when initialization has fully completed (i.e., the client has sent an `initialized` notification).
@ -87,6 +93,7 @@ export class Server<
) {
super(options);
this._capabilities = options.capabilities;
this._instructions = options.instructions;
this.setRequestHandler(InitializeRequestSchema, (request) =>
this._oninitialize(request),
@ -234,6 +241,7 @@ export class Server<
: LATEST_PROTOCOL_VERSION,
capabilities: this.getCapabilities(),
serverInfo: this._serverInfo,
...(this._instructions && { instructions: this._instructions }),
};
}