Skip to main content
Glama

Spreadsheet MCP Server

by HosakaKeigo
format.ts2.06 kB
/** * データフォーマット用のユーティリティ関数を提供するファイル */ import { SpreadsheetInfo, SheetData } from '../api/types.js'; /** * スプレッドシート情報をフォーマットする関数 * @param info スプレッドシート情報 * @returns フォーマットされたテキスト */ export function formatSpreadsheetInfo(info: SpreadsheetInfo): string { const sheetsInfo = info.sheets .map(sheet => `- ${sheet.name} (${sheet.rowCount}行 x ${sheet.columnCount}列)`) .join("\n"); return `# スプレッドシート情報 名前: ${info.name} ID: ${info.id} URL: ${info.url} 最終更新: ${new Date(info.lastModified).toLocaleString()} ## シート一覧: ${sheetsInfo} スプレッドシートには ${info.sheets.length} 個のシートがあります。特定のシートのデータを取得するには、シート名を指定してください。`; } /** * シートデータをフォーマットする関数 * @param data シートデータ(二次元配列) * @param sheetName シート名 * @param spreadsheetName スプレッドシート名 * @returns フォーマットされたテキスト */ export function formatSheetData(data: SheetData, sheetName: string, spreadsheetName: string): string { // ヘッダーの取得 const headers = data[0] || []; // テーブルのフォーマット let table = ""; if (data.length > 0) { // ヘッダー行を作成 const headerRow = `| ${headers.map(h => String(h)).join(" | ")} |`; // セパレータ行を作成(マークダウンテーブル用) const separator = `| ${headers.map(() => "---").join(" | ")} |`; // データ行を作成 const dataRows = data.slice(1).map(row => { return `| ${row.map(cell => String(cell === null ? "" : cell)).join(" | ")} |`; }).join("\n"); table = `${headerRow}\n${separator}\n${dataRows}`; } return `# ${spreadsheetName} / ${sheetName} ${data.length > 1 ? `${data.length - 1}行のデータ` : "データなし"}\n ${table}`; }

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/HosakaKeigo/spreadsheet-mcp-server'

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