Skip to main content
Glama

count_chars

Counts the characters in a specified text file, excluding spaces and line breaks. Supports Windows or WSL/Linux file paths for accurate character analysis.

Instructions

ファイルの文字数を計測します。絶対パスを指定してください(Windows形式 C:\Users...、またはWSL/Linux形式 /c/Users/... のどちらも可)。スペースや改行を除いた実質的な文字数をカウントします。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filePathYes文字数をカウントするファイルのパス(Windows形式かWSL/Linux形式の絶対パスを推奨)

Implementation Reference

  • The handler function for the 'count_chars' tool. It resolves the file path, reads the file content using fs.readFileSync, and calls the countTextCharsImpl helper to compute the character count.
    async ({ filePath }) => { try { // ファイルパスを解決 const resolvedPath = resolveFilePath(filePath); const fileContent = fs.readFileSync(resolvedPath, 'utf8'); return this.countTextCharsImpl(fileContent, `ファイル '${resolvedPath}'`); } catch (error: any) { return { content: [{ type: 'text' as const, text: `ファイル読み込みエラー: ${error.message}` }], isError: true }; } }
  • Zod input schema defining the 'filePath' parameter for the tool.
    { filePath: z.string().describe('文字数をカウントするファイルのパス(Windows形式かWSL/Linux形式の絶対パスを推奨)') },
  • src/index.ts:470-492 (registration)
    Registration of the 'count_chars' tool on the McpServer instance using the tool() method, specifying name, description, schema, and handler.
    this.server.tool( 'count_chars', 'ファイルの文字数を計測します。絶対パスを指定してください(Windows形式 C:\\Users\\...、またはWSL/Linux形式 /c/Users/... のどちらも可)。スペースや改行を除いた実質的な文字数をカウントします。', { filePath: z.string().describe('文字数をカウントするファイルのパス(Windows形式かWSL/Linux形式の絶対パスを推奨)') }, async ({ filePath }) => { try { // ファイルパスを解決 const resolvedPath = resolveFilePath(filePath); const fileContent = fs.readFileSync(resolvedPath, 'utf8'); return this.countTextCharsImpl(fileContent, `ファイル '${resolvedPath}'`); } catch (error: any) { return { content: [{ type: 'text' as const, text: `ファイル読み込みエラー: ${error.message}` }], isError: true }; } } );
  • Helper method that implements the core character counting logic, excluding spaces, newlines, and returns formatted text response.
    private countTextCharsImpl(text: string, sourceName: string = 'テキスト') { try { // 改行とスペースを除外した文字数 const contentWithoutSpacesAndNewlines = text.replace(/[\s\n\r]/g, ''); const effectiveCharCount = contentWithoutSpacesAndNewlines.length; return { content: [{ type: 'text' as const, text: `${sourceName}の文字数: ${effectiveCharCount}文字(改行・スペース除外)` }] }; } catch (error: any) { return { content: [{ type: 'text' as const, text: `エラーが発生しました: ${error.message}` }], isError: true }; } }

Other Tools

Related Tools

Latest Blog Posts

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/Mistizz/mcp-JapaneseTextAnalyzer'

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