Skip to main content
Glama

Server Details

Convert handwriting into text, LaTeX math, chemistry, or molecular structures.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.6/5 across 6 of 6 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: layout generation, handwriting canvas, style canvas, image text recognition, and two internal endpoints. The descriptions are highly detailed with explicit 'Do NOT use' instructions, making it easy for an agent to select correctly.

Naming Consistency4/5

Tool names follow a consistent verb-noun pattern (create, recognize, show, synthesize) with hyphens. Minor inconsistency: two 'recognize' tools could cause confusion, but one is clearly marked as internal. Overall, the naming is predictable and readable.

Tool Count5/5

With 6 tools, the server is well-scoped for its domain of document layout, handwriting input, OCR, and style generation. Each tool earns its place, and the count is neither too small nor excessive.

Completeness4/5

The tool set covers the main workflows: layout creation, handwriting capture/recognition, image OCR, and personal handwriting style synthesis. Minor gaps like lack of an edit tool for layouts are understandable given the domain; agents can work around them.

Available Tools

6 tools
fluxink-mcp-chatgpt-create-layoutA
Read-only
Inspect

FluxInk document layout generator. Transform raw text content into a structured PDF using one of seven study or work templates, then preview it in an embedded PDF viewer widget.

Supported layout_type values. cornell is the Cornell note taking layout with cue, notes, and summary. bullet_points is a clean bulleted summary. zettelkasten is atomic linked notes. journalism_5w1h is who, what, when, where, why, and how. meeting_add is a meeting agenda plus action items. sq3r is Survey, Question, Read, Recite, Review study notes. pso is Problem, Solution, Outcome.

Use this when the user asks for a Cornell sheet, bulleted summary, Zettelkasten card, 5W1H breakdown, meeting agenda or minutes, SQ3R study sheet, or PSO writeup. Use this when the user wants to turn raw notes, lecture transcript, or source material into a printable PDF or formatted study sheet. Use this when the user asks for a downloadable PDF document of their content.

Do NOT use this when the user just asks for a plain summary in chat. Give it inline. Do NOT use this when the user wants to handwrite or draw something. Call show_handwriting_canvas instead. Do NOT use this when the user wants text in a personal handwriting style. Call show_style_canvas instead. Do NOT use this for plain informational requests with no document generation intent.

Always pass the source material verbatim in the content parameter. Do NOT pre summarize. The layout engine handles structuring. Pick the layout_type that best matches the stated purpose. If unclear, ask one short clarifying question instead of guessing.

Do NOT re-call if a layout PDF is already visible from a previous turn unless the user explicitly asks for a different layout, different content, or a regeneration. After calling, write a single short acknowledgement and do NOT restate the PDF content.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoOptional title for the document. If omitted, the backend generates one.
contentYesThe raw educational or note content to transform into a structured layout. Pass the full text. The backend will analyze, structure, and render it.
layout_typeYesLayout template to render. Allowed values. cornell (Cornell note taking layout with cue, notes, and summary). bullet_points (clean bulleted summary). zettelkasten (atomic linked notes). journalism_5w1h (who, what, when, where, why, how). meeting_add (meeting agenda plus action items). sq3r (Survey, Question, Read, Recite, Review study notes). pso (Problem, Solution, Outcome).

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
titleNo
successYes
layout_typeNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses important behaviors beyond annotations: re-call policy, post-call acknowledgement requirement, and instruction to pass content verbatim without pre-summarizing. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with a clear summary, template list, and usage rules. Slightly lengthy but every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all aspects: purpose, parameters, when to use, when not to use, post-call behavior, and content handling. Rich and complete for a 3-parameter tool with output schema and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters have schema descriptions (100% coverage). Description adds extra context, especially for layout_type with detailed enumeration and content handling advice.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it is a document layout generator that transforms raw text into structured PDFs using seven templates. Distinguishes from sibling tools by specifying when not to use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly lists use cases (e.g., Cornell sheet, bulleted summary) and exclusions (plain chat summary, handwriting). Provides alternative tools and instructions for content handling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fluxink-mcp-chatgpt-recognize-handwritingA
Read-only
Inspect

Internal FluxInk handwriting recognition execution endpoint. Invoked ONLY by the handwriting canvas widget when the user finishes drawing. Do NOT call this tool directly from chat. To capture handwriting from the user, call show_handwriting_canvas instead. This endpoint requires a JSON stroke payload that only the widget can produce.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoWidget-internal recognition family. Preferred values are general or structure; legacy text, math, and chemical values are accepted for existing widget compatibility.general
strokesYesJSON encoded array of strokes captured by the widget. Each stroke is an object with x, y, t arrays.
languageNoOptional language hint for text mode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
resultNo
successYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it is an execution endpoint but does not disclose additional behavioral details like rate limits or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, extremely concise, and front-loaded with the key purpose and usage constraint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present and the tool being internal, the description fully covers the necessary context: it clearly states the intended invocation path and payload requirement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. The description mentions the stroke payload but does not add parameter-specific meaning beyond the schema. It does not compensate with extra details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool as an internal handwriting recognition endpoint, invoked only by the widget, and explicitly distinguishes from the sibling show_handwriting_canvas tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Do NOT call this tool directly from chat' and redirects to show_handwriting_canvas, providing clear usage boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fluxink-mcp-chatgpt-recognize-imageA
Read-only
Inspect

FluxInk image text recognition. Extract text from an EXISTING image (file upload, URL, or base64) the user provides. Higher accuracy than built in vision for tightly packed text, multi language documents, math, and LaTeX. Returns per region confidence and detection coordinates.

Use this when the user uploads, attaches, or shares an image containing text they want extracted (screenshot, photo, scanned document, receipt, sign, whiteboard, book page, photographed handwritten notes). Use this when the user wants a photographed math expression or chemistry formula converted to LaTeX. Use this when the user references an image and asks to read, transcribe, or digitize the text in it.

Do NOT use this when the user has NOT provided an image yet. Do NOT use this when the user wants to draw or handwrite something fresh (call show_handwriting_canvas instead). Do NOT use this when the request is a plain text question, summary, or explanation with no image attached.

The language parameter selects the recognition mode. en is English text (default). zh is Chinese text. paddle is multilingual or mixed text. formula is mathematics. latex returns raw LaTeX markup. After returning results, present the extracted text clearly and offer follow up actions like translation, summarization, or editing.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageYesImage to recognize text from. Pass an image from the conversation.
languageNoRecognition mode. Allowed values. en (English text). zh (Chinese text). paddle (multilingual mixed text). formula (mathematics with LaTeX output). latex (return raw LaTeX markup).en

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
resultsNo
successYes
languageNo
full_textNo
total_time_msNo
detection_countNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true and destructiveHint=false. Description adds context about returning per-region confidence and coordinates, and suggests follow-up actions like translation. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear sections: purpose, usage, language parameters, and post-processing. Slightly verbose but each sentence is informative and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all necessary aspects: what the tool does, when/when not to use, parameter details with enum values, and guidance on what to do after returning results. No gaps given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds value by explaining each language mode (en, zh, paddle, formula, latex) and their use cases, going beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Extract text from an EXISTING image' with specific verb and resource. Distinguishes from sibling tools like show_handwriting_canvas for fresh drawing. Mentions higher accuracy for specific use cases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly lists 'Use this when...' and 'Do NOT use this when...' scenarios, including an alternative tool name (show_handwriting_canvas). Covers both positive and negative cases thoroughly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fluxink-mcp-chatgpt-show-handwriting-canvasA
Read-only
Inspect

Open the FluxInk handwriting recognition canvas. The user draws freehand strokes with a stylus, finger, or mouse. The strokes are converted by one of two model families: general recognition for handwriting, math, and chemical formulas, or structure recognition for molecular structures.

Use this when the user asks to handwrite, draw, sketch, ink, scribble, or scrawl something. Use this when the user wants to draw a math equation, chemical formula, or molecular structure rather than type it. Use this when the user asks for a canvas, drawing pad, handwriting input box, or whiteboard. Use this when the user wants to convert stylus or finger drawings into recognized text or markup.

Do NOT use this when the user types a question, equation, or formula in chat and just wants an answer. Do NOT use this when the user uploads or references an existing image of handwriting (call recognize_image instead). Do NOT use this when the user wants a formatted document, study sheet, or layout PDF (call create_layout instead). Do NOT use this when the user wants text rendered in a personal handwriting style (call show_style_canvas instead). Do NOT use this for conversational or informational requests that need no ink input.

Do NOT re-open if a FluxInk handwriting canvas is already visible from any earlier turn. Instead instruct the user to keep drawing on the existing canvas. Only set force_new=true when the user explicitly asks for a brand new, fresh, or blank canvas.

Always pass the original chat message in the prompt parameter so context is preserved after recognition. After calling, write a single short acknowledgement and do NOT describe the canvas UI.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoRecognition family for the canvas. Use general for text, math, and chemical formulas; use structure only for molecular structures.general
promptNoThe original chat message that triggered the canvas. Passed through to the follow-up message after recognition.
languageNoOptional language hint for text mode. Omit to use the mixed-language model default.
force_newNoSet true ONLY when the user explicitly asks for a brand-new canvas. Otherwise leave false so a previously opened canvas is reused.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
reuseNo
promptYes
messageYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

While annotations already include readOnlyHint=true, the description adds context about recognition families, canvas reuse behavior, and the prompt passthrough. No contradiction with annotations, but more detail on side effects (e.g., whether previous strokes are cleared) could be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the core purpose. It is longer than minimal but every sentence adds value. A slight reduction could be possible without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and comprehensive annotations, the description covers all needed aspects: purpose, usage boundaries, parameter details, and behavioral rules. No obvious gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the description adds significant meaning beyond the schema: explains mode families, when to use force_new, the role of prompt, and language as optional hint. Each parameter is clearly contextualized.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool opens a FluxInk handwriting recognition canvas and explains its functionality. It explicitly distinguishes from sibling tools like recognize_image, create_layout, and show_style_canvas by giving specific use cases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use and when-not-to-use instructions, including alternatives (e.g., use recognize_image for existing images). It also covers edge cases like not re-opening an existing canvas and when to set force_new.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fluxink-mcp-chatgpt-show-style-canvasA
Read-only
Inspect

Open the FluxInk natural texture ink style capture canvas. The user draws a few sample characters in a personal handwriting style. The widget then renders the requested text as a PNG spritesheet IN THAT EXACT PERSONAL HANDWRITING STYLE. Output is a downloadable spritesheet of individual handwritten glyphs that can be used as an asset (for example with image generation).

Use this when the user asks to render or generate text in a personal handwriting style. Use this when the user wants a personalized handwritten note, card, letter, invitation, journal entry, or signature line that should look hand written by the user. Use this when the user wants to capture, clone, or sample a personal handwriting style and reuse it.

Do NOT use this when the user just wants handwriting recognized (call show_handwriting_canvas instead). Do NOT use this for generic decorative handwritten fonts, calligraphy art, or AI generated script unrelated to the personal writing of the user. Do NOT use this to read text from an existing photo of handwriting (call recognize_image instead). Do NOT use this when the user wants a formatted document or layout (call create_layout instead). Do NOT use this for plain informational requests.

Supports English and Chinese. Always pass the COMPLETE target text in the text parameter. Never truncate or abbreviate. Every character must appear in the spritesheet.

Do NOT re-open if a FluxInk natural texture ink canvas is already visible from any earlier turn. Instead instruct the user to update the target text inside the existing widget. Only set force_new=true on an explicit user request for a brand new style canvas.

After calling, write a single short acknowledgement and do NOT describe the UI. Once the user saves the spritesheet they can re-upload it for further design work.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe COMPLETE text to render as natural texture ink handwriting. Pass the FULL text. Never truncate or abbreviate. Supports English and Chinese.
force_newNoSet true ONLY when the user explicitly asks for a brand-new style canvas. Otherwise leave false so a previously opened canvas is reused.

Output Schema

ParametersJSON Schema
NameRequiredDescription
textYes
reuseNo
messageYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true and destructiveHint=false, so the description adds value by detailing the canvas interaction, language support, and the critical 'do not re-open if already visible' rule. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized into sections, though somewhat lengthy. Every sentence adds necessary information with no redundancy. Minor improvements could shorten examples, but current structure is effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description covers all necessary aspects: purpose, usage conditions, parameter constraints, and behavioral notes (e.g., do not re-open). It also notes language support. Fully sufficient for correct tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters, but the description reinforces the 'complete text' requirement and explains when to set force_new=true. This adds pragmatic context beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool opens a canvas for capturing personal handwriting and renders text as a PNG spritesheet in that style. It distinguishes from siblings by explicitly naming alternatives and use cases, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use (personal handwriting style, handwritten notes) and when-not-to-use lists with specific alternative tools (show_handwriting_canvas, recognize_image, create_layout). This leaves no ambiguity for the AI agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fluxink-mcp-chatgpt-synthesize-handwriting-styleA
Read-only
Inspect

Internal FluxInk natural texture ink execution endpoint. Invoked ONLY by the style canvas widget when the user clicks Generate. Do NOT call this tool directly from chat. To render text in the personal handwriting style of the user, call show_style_canvas instead. This endpoint requires JSON encoded style strokes captured by the widget.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to synthesize in the captured handwriting style.
cell_sizeNoCharacter cell size in pixels.
legibilityNoLegibility level (0.0 to 2.0).
style_textNoText the user actually wrote as the style sample (for accurate style conditioning). If omitted, the backend auto recognises via handwriting recognition.
stroke_widthNoOutput stroke width (1.0 to 15.0).
style_strokesYesJSON encoded array of style strokes captured from the canvas.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
successYes
charCountNo
imageBase64No
inferenceTimeMsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and destructiveHint=false. Description adds that the tool requires JSON-encoded style strokes from the canvas, clarifying its internal nature and prerequisites. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: first defines purpose, second gives usage warning and alternative, third adds prerequisite. No wasted words, front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given high schema coverage and presence of output schema, the description sufficiently covers purpose and usage boundaries. Lacks examples or error handling details, but adequate for an internal tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description does not provide additional details beyond the schema's parameter descriptions. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is an internal endpoint for ink execution, invoked by the style canvas widget, and distinguishes from sibling show_style_canvas by warning not to call directly from chat.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Do NOT call this tool directly from chat' and provides specific alternative: 'call show_style_canvas instead'. Also states it is invoked ONLY by the widget.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources