Skip to main content
Glama
GonzaloRando03

Redmine MCP Server

upload_file

Upload a binary file to Redmine to obtain an upload token, which can be attached to issues or wiki pages. Always set content type to application/octet-stream.

Instructions

Uploads a binary file to Redmine and returns an upload token. IMPORTANT: Redmine requires the request to use Content-Type: application/octet-stream for all file uploads — always set content_type to 'application/octet-stream', regardless of the actual file type. Using any other MIME type (e.g. 'image/png', 'application/pdf') will cause Redmine to reject the upload with HTTP 406. The returned token must be passed in the 'uploads' field when creating or updating issues, wiki pages, etc.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filenameYesName for the uploaded file as it will appear in Redmine
content_typeYesMUST be 'application/octet-stream'. Redmine rejects uploads with any other Content-Type (HTTP 406). Do not use the actual MIME type of the file here.application/octet-stream
file_pathYesAbsolute path to the local file to upload.
Behavior4/5

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

With no annotations, the description carries full burden. It reveals the critical Content-Type requirement and rejection behavior. It does not mention file size limits, authentication, or error handling for missing files, but covers the essential API behavior.

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 concise sentences, front-loaded with the main action, then crucial requirements, then token usage. No extraneous information.

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 no annotations, no output schema, and file upload complexity, the description explains the upload process and token purpose well. It lacks details on response structure (e.g., token format) but is adequate for usage.

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 with descriptions. The description adds value by emphasizing the content_type must be 'application/octet-stream' and explaining the token's role in later operations, going beyond schema 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 'Uploads a binary file to Redmine and returns an upload token.' It specifies the verb and resource, and distinguishes from sibling tools like create_project_file by explaining the token-based workflow.

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?

It explicitly instructs to always set Content-Type to 'application/octet-stream', warns of HTTP 406 rejection, and explains token usage for subsequent operations. It does not explicitly list when not to use this tool, but context from siblings implies this is for initial token generation.

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

Install Server

Other 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/GonzaloRando03/redmine-mcp-server'

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