buena-typescript-sdk
Version:
Official TypeScript SDK for Buena.ai API - LinkedIn automation and lead management
70 lines (62 loc) • 2.07 kB
text/typescript
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { SDKCore } from "../core.js";
import { SDKOptions } from "../lib/config.js";
import type { ConsoleLogger } from "./console-logger.js";
import { createRegisterPrompt } from "./prompts.js";
import {
createRegisterResource,
createRegisterResourceTemplate,
} from "./resources.js";
import { MCPScope } from "./scopes.js";
import { createRegisterTool } from "./tools.js";
import { tool$createApiKey } from "./tools/createApiKey.js";
import { tool$createLead } from "./tools/createLead.js";
import { tool$healthCheck } from "./tools/healthCheck.js";
import { tool$listApiKeys } from "./tools/listApiKeys.js";
import { tool$listLeads } from "./tools/listLeads.js";
export function createMCPServer(deps: {
logger: ConsoleLogger;
allowedTools?: string[] | undefined;
scopes?: MCPScope[] | undefined;
serverURL?: string | undefined;
apiKeyAuth?: SDKOptions["apiKeyAuth"] | undefined;
serverIdx?: SDKOptions["serverIdx"] | undefined;
}) {
const server = new McpServer({
name: "SDK",
version: "0.0.1",
});
const client = new SDKCore({
apiKeyAuth: deps.apiKeyAuth,
serverURL: deps.serverURL,
serverIdx: deps.serverIdx,
});
const scopes = new Set(deps.scopes);
const allowedTools = deps.allowedTools && new Set(deps.allowedTools);
const tool = createRegisterTool(
deps.logger,
server,
client,
scopes,
allowedTools,
);
const resource = createRegisterResource(deps.logger, server, client, scopes);
const resourceTemplate = createRegisterResourceTemplate(
deps.logger,
server,
client,
scopes,
);
const prompt = createRegisterPrompt(deps.logger, server, client, scopes);
const register = { tool, resource, resourceTemplate, prompt };
void register; // suppress unused warnings
tool(tool$healthCheck);
tool(tool$createApiKey);
tool(tool$listApiKeys);
tool(tool$listLeads);
tool(tool$createLead);
return server;
}