Skip to main content
Glama

File Create

file_create

Create a new versioned shared file in the caller's org.

Shared files default to private. Call file_publish to generate the public share URL (/s/{share_token}). Each file_update creates a new immutable version row. Pass work_id to attach it to a task and/or project_id to attach it to a project (same shared_files row; project attachments are kind=artifact only).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
agentNoOverride agent identity
titleYesFile title
contentYesFile body: markdown, raw HTML, or a teamshared.diagram/v1 JSON/YAML document when content_format='diagram'
work_idNoAttach the new file to this work item UUID
project_idNoAttach the new file to this project UUID (kind=artifact)
content_formatNo'markdown' (allowlist sanitizer), 'html' (sanitized raw HTML), or 'diagram' (teamshared.diagram/v1 JSON/YAML; Mermaid on /s/...)markdown

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed3 schema fields changed
    • changedInput schema / properties / content / description
      Previous value: -"File body (markdown or raw HTML)"New value: +"File body: markdown, raw HTML, or a teamshared.diagram/v1 JSON/YAML document when content_format='diagram'"
    • changedInput schema / properties / content_format / description
      Previous value: -"'markdown' (rendered through the allowlist sanitizer) or 'html' (sanitized raw HTML)"New value: +"'markdown' (allowlist sanitizer), 'html' (sanitized raw HTML), or 'diagram' (teamshared.diagram/v1 JSON/YAML; Mermaid on /s/...)"
    • addedInput schema / properties / project_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Attach the new file to this project UUID (kind=artifact)"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / work_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Attach the new file to this work item UUID"
      +}
  3. First observed

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It reveals that shared files default to private, that public sharing requires file_publish, that updates create immutable version rows, and that project attachments are kind=artifact only. This is strong contextual information beyond the basic create operation, though it does not cover authorization or broader side effects.

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 four sentences with no filler: it leads with the core purpose, then adds privacy behavior, sibling-tool routing, versioning semantics, and attachment details. Every sentence earns its place and important information is front-loaded.

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 tool has a rich input schema, an output schema, and no annotations, the description is complete enough for reliable invocation. It explains the key behavioral boundaries, attachment constraints, and related sibling operations. Nothing essential for correct use appears to be missing.

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 description coverage is 100%, so the baseline is 3. The description adds meaningful semantic nuance beyond the schema: work_id and project_id attach to the same shared_files row, project attachments are restricted to kind=artifact, and content can be passed in different formats. This elevates the parameter understanding beyond simple property 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 uses a specific verb and resource: 'Create a new versioned shared file in the caller's org.' It clearly distinguishes itself from sibling tools like file_update and file_publish by establishing that this is the creation entrypoint and that updates create new version rows.

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

Usage Guidelines4/5

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

The description gives concrete guidance about related sibling tools: file_publish is the way to generate a public share URL, and file_update is the operation that creates new immutable version rows. It provides clear context for when those alternatives are relevant, though it does not explicitly list exclusions such as when to prefer file_upload_request.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

B3.4/5.0
Disambiguation4/5

With 104 tools across many domains (memory, work, projects, files, agents, context, strategic, ontology), the use of clear prefixes (memory_, work_, project_, file_, agent_run_, context_) makes most tools distinct. However, there are some potential confusions between memory_session_* vs memory_state_*, and memory_recall vs memory_think vs memory_assemble_context, though descriptions clarify their specific purposes. Aliases like memory_playbook_get for memory_procedure_get are explicit and reduce ambiguity.

Naming Consistency5/5

Tool names follow a highly consistent pattern: prefix_domain_action (e.g., file_create, work_update, memory_recall, agent_run_start). All use snake_case, with verbs consistently placed after the domain prefix. Even less common tools like account_brief and attention_snapshot fit the overall naming scheme, making the set predictable and easy to navigate.

Tool Count3/5

At 104 tools, this is an exceptionally large surface area, far exceeding the 25+ threshold that feels heavy. However, the server covers an extensive domain (organizational memory, work management, project tracking, file sharing, agent orchestration, and strategic planning), which justifies a large count. Still, the sheer number may overwhelm agents, and some tools could be consolidated (e.g., many memory_session_* and memory_state_* variants).

Completeness4/5

The tool surface is remarkably complete for its stated purpose, covering CRUD operations for files, work items, projects, and memory, plus lifecycle management for agents, sessions, and strategic plans. Minor gaps exist (e.g., no direct memory_item_get by ID, no section removal in projects), but agents can work around these using existing tools like memory_recall or work_create with parent_id. Overall, the set minimizes dead ends.