Skip to main content
Glama

Kintone MCP Server

by r3-yamauchi
MCPServer.js2.07 kB
// src/server/MCPServer.js import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js'; import { KintoneCredentials } from '../models/KintoneCredentials.js'; import { KintoneRepository } from '../repositories/KintoneRepository.js'; import { executeToolRequest } from './handlers/ToolRequestHandler.js'; import { allToolDefinitions } from './tools/definitions/index.js'; import { LoggingUtils } from '../utils/LoggingUtils.js'; export class MCPServer { constructor(domain, username, password) { this.credentials = new KintoneCredentials(domain, username, password); this.repository = new KintoneRepository(this.credentials); this.server = new Server( { name: 'kintonemcp', version: '7.9.0', }, { capabilities: { tools: {}, }, } ); this.setupRequestHandlers(); // エラーハンドリング this.server.onerror = (error) => LoggingUtils.error('server', 'mcp_server_error', error); process.on('SIGINT', async () => { await this.server.close(); process.exit(0); }); } setupRequestHandlers() { // ツール一覧を返すハンドラー this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: allToolDefinitions })); // ツールリクエストを実行するハンドラー this.server.setRequestHandler(CallToolRequestSchema, async (request) => { return executeToolRequest(request, this.repository); }); } async run() { const transport = new StdioServerTransport(); await this.server.connect(transport); LoggingUtils.info('server', 'mcp_server_running'); } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/r3-yamauchi/kintone-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server