Skip to main content
Glama
bmorphism

Penrose MCP Server

by bmorphism

Penrose MCP 서버

Penrose를 위한 모델 컨텍스트 프로토콜(MCP) 서버 - 자연어를 통해 아름다운 수학적 다이어그램을 만듭니다.

개요

이 MCP 서버는 Penrose의 도메인 특정 언어를 사용하여 수학적 다이어그램을 만드는 데 필요한 도구와 리소스를 제공합니다.

  • 도메인(DSL) : 수학적 유형과 관계 정의

  • 물질 : 수학적 객체와 그 관계를 설명합니다.

  • 스타일 : 시각적 표현 규칙 지정

Related MCP server: MCP-GLSP

프로젝트 구조

  • .topos/ : 연구 자료 및 문서(gitignored)

    • penrose-research/ : 설계 문서 및 사양

    • mcp-examples/ : MCP 서버 구현 참조

    • mcp-spec/ : 공식 MCP 프로토콜 문서

개발

justfile을 사용하여 문서와 참고 자료에 액세스하세요.

지엑스피1

특허

MIT 라이선스 - 자세한 내용은 라이선스 파일을 참조하세요.

Available Tools

4 tools
create_domainC

Create domain-specific language (DSL) definitions

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDomain name
typesYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Create' implies a write/mutation operation, it doesn't specify permissions needed, whether the operation is idempotent, what happens on conflicts, or any rate limits. For a creation tool with zero annotation coverage, this leaves significant behavioral gaps.

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?

The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a tool with 2 parameters and gets straight to the point with zero wasted content.

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

Completeness2/5

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

For a creation tool with no annotations, no output schema, and incomplete parameter documentation (50% schema coverage), the description is inadequate. It doesn't explain what the tool returns, what happens after creation, or provide enough context about the DSL system to guide proper usage.

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?

The description mentions 'DSL definitions' which hints at the purpose of the parameters, but doesn't explain what 'name' and 'types' represent in this context. With 50% schema description coverage (only 'name' has a description), the description adds minimal value beyond what the schema provides, meeting the baseline for moderate schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Create') and the resource ('domain-specific language (DSL) definitions'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like create_style or create_substance, which likely create different types of definitions in the same system.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like create_style or create_substance. There's no mention of prerequisites, appropriate contexts, or exclusions, leaving the agent with no usage direction beyond the basic purpose.

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

create_styleD

Define visual representation rules

ParametersJSON Schema
NameRequiredDescriptionDefault
canvasYes
rulesYes

TDQS

D1.8/5.0
Behavior1/5

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

With no annotations provided, the description carries full burden for behavioral disclosure but provides none. 'Define' suggests a creation/mutation operation, but there's no information about permissions needed, whether this is idempotent, what happens on failure, rate limits, or what the tool actually does beyond the vague 'define' action. No behavioral traits are disclosed.

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?

The description is extremely concise at just three words. While this represents severe under-specification, from a pure conciseness perspective, there's zero wasted language. Every word earns its place, and the description is front-loaded with the core concept.

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

Completeness1/5

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

For a tool with 2 complex parameters (including nested objects), 0% schema description coverage, no annotations, no output schema, and no sibling tool differentiation, the description is completely inadequate. It provides minimal context for what is clearly a sophisticated styling/visualization tool that requires understanding of canvas dimensions and rule structures.

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

Parameters2/5

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

With 0% schema description coverage and 2 complex parameters (canvas and rules), the description provides no parameter information whatsoever. It doesn't explain what 'canvas' represents, what 'rules' contain, or how these relate to 'visual representation rules.' The description fails to compensate for the complete lack of schema documentation.

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

Purpose2/5

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

The description 'Define visual representation rules' is vague and tautological - it essentially restates the tool name 'create_style' in different words. While it suggests something about visual rules, it doesn't specify what kind of style is being created, for what purpose, or what resource it operates on. It doesn't distinguish this from sibling tools like create_domain or create_substance.

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

Usage Guidelines1/5

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

The description provides absolutely no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, appropriate contexts, or when to choose this over sibling tools like create_domain, create_substance, or generate_diagram. The agent receives no usage direction whatsoever.

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

create_substanceC

Define mathematical objects and relationships

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesReference to domain
declarationsYes
statementsYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool defines objects and relationships, implying a write operation, but doesn't disclose critical traits like whether it's idempotent, requires specific permissions, handles errors, or what happens on success/failure. For a tool with 3 required parameters and no annotation coverage, this is a significant gap in transparency.

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?

The description is extremely concise with a single, front-loaded sentence: 'Define mathematical objects and relationships.' It wastes no words and directly states the core purpose, making it easy for an agent to parse quickly. Every part of the sentence earns its place by conveying essential information.

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

Completeness2/5

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

Given the tool's complexity (3 required parameters, no annotations, no output schema, and low schema coverage), the description is incomplete. It doesn't explain what the tool returns, how to interpret results, or provide enough context for safe and effective use. For a definition tool with significant parameter details, more information is needed to guide the agent adequately.

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

Parameters2/5

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

Schema description coverage is low at 33%, with only the 'domain' parameter having a description ('Reference to domain'). The description 'Define mathematical objects and relationships' adds minimal semantic context, hinting that 'declarations' might define objects and 'statements' might define relationships, but it doesn't explain parameter formats, constraints, or examples. This insufficiently compensates for the schema's lack of detail.

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

Purpose4/5

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

The description 'Define mathematical objects and relationships' clearly states the tool's purpose with a specific verb ('define') and resource ('mathematical objects and relationships'). It distinguishes from siblings like 'create_domain' or 'generate_diagram' by focusing on mathematical definitions rather than domains, styles, or diagrams. However, it doesn't explicitly differentiate from 'create_style' which might also involve definitions, leaving some ambiguity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or exclusions, such as whether it's for initial setup or ongoing updates, or how it relates to sibling tools like 'create_domain' or 'create_style'. This lack of usage context leaves the agent to infer appropriate scenarios.

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

generate_diagramC

Generate diagram from domain/substance/style

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
substanceYes
styleYes
variationNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Generate diagram' but doesn't explain what this entails—e.g., whether it's a read-only operation, if it modifies data, requires authentication, has rate limits, or what the output looks like. This is a significant gap for a tool with no annotation coverage.

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?

The description is a single, efficient sentence with no wasted words. It's appropriately sized and front-loaded, clearly stating the tool's basic function without unnecessary elaboration.

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

Completeness2/5

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

Given the complexity (4 parameters, no annotations, no output schema), the description is incomplete. It lacks details on behavior, parameter meanings, output format, and usage context, making it inadequate for an agent to understand how to effectively invoke the tool beyond a superficial level.

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

Parameters2/5

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

Schema description coverage is 0%, so the schema provides no parameter details. The description mentions 'domain/substance/style' as inputs, which maps to three of the four parameters (domain, substance, style), but it omits 'variation' and doesn't explain what these parameters mean, their formats, or how they influence diagram generation, failing to compensate for the coverage gap.

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

Purpose3/5

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

The description 'Generate diagram from domain/substance/style' states the basic action (generate) and resources (diagram from three inputs), but it's vague about what kind of diagram or how it's generated. It doesn't distinguish from siblings like 'create_domain', which suggests different operations, but the purpose lacks specificity beyond the basic verb+resource combination.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, exclusions, or relationships to sibling tools like 'create_domain', 'create_style', or 'create_substance', leaving the agent with no context for tool selection.

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

TDQS

B3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: create_domain defines DSLs, create_style handles visual rules, create_substance manages mathematical objects, and generate_diagram produces the final output. The descriptions clearly separate these stages in the diagram creation workflow.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with 'create_' for three tools and 'generate_' for the final step, maintaining readability and predictability. The naming convention perfectly reflects the logical flow from creation to generation.

Tool Count5/5

Four tools is well-scoped for a diagram generation server, covering the essential components (domain, style, substance) and the final generation step. Each tool earns its place without redundancy or missing functionality for the apparent workflow.

Completeness4/5

The tool set covers the core Penrose diagram creation workflow comprehensively, with no dead ends. A minor gap exists in lacking update/delete operations for existing definitions, but agents can work around this by recreating components as needed.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/bmorphism/penrose-mcp'

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