Skip to main content
Glama

get_issue_attachment

Retrieve specific attachments from JIRA issues by providing the issue key and attachment ID, enabling access to files and documents linked to work items.

Instructions

获取JIRA问题附件

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
issue_keyYes
attachment_idYes

Implementation Reference

  • The handler function for the 'get_issue_attachment' tool, decorated with @mcp.tool for registration in the FastMCP server. It retrieves a specific attachment by ID from a JIRA issue, downloads the content, and returns it as base64-encoded string (for images/binary) or plain text (for text files), along with metadata.
    @mcp.tool( description="获取JIRA问题附件", ) def get_issue_attachment( issue_key: str, attachment_id: str, ) -> Dict[str, Any]: """获取JIRA问题附件内容. Args: issue_key: JIRA问题键 attachment_id: 附件ID Returns: Dict[str, Any]: 附件内容 """ logger.info(f"获取问题附件: issue={issue_key}, attachment_id={attachment_id}") try: client = get_jira_client() issue = client.issue(issue_key) # 查找指定ID的附件 attachment = None # 检查attachments字段 attachments = [] if hasattr(issue.fields, "attachments") and issue.fields.attachments: attachments = issue.fields.attachments elif hasattr(issue.fields, "attachment") and issue.fields.attachment: attachments = issue.fields.attachment for att in attachments: if att.id == attachment_id: attachment = att break if not attachment: return {"error": f"未找到ID为 {attachment_id} 的附件"} # 获取附件内容 content = attachment.get() # 确定返回类型:对于图片类型,返回Base64编码;对于文本类型,返回文本内容 mime_type = attachment.mimeType filename = attachment.filename result = { "id": attachment.id, "filename": filename, "size": attachment.size, "content_type": mime_type, "created": attachment.created, } # 处理不同的内容类型 if mime_type.startswith("image/"): # 对于图片,返回Base64编码 result["content"] = base64.b64encode(content).decode('utf-8') result["encoding"] = "base64" elif mime_type.startswith("text/"): # 对于文本文件,直接返回文本内容 try: result["content"] = content.decode('utf-8') result["encoding"] = "text" except UnicodeDecodeError: # 如果解码失败,回退到Base64 result["content"] = base64.b64encode(content).decode('utf-8') result["encoding"] = "base64" else: # 对于其他类型,返回Base64编码 result["content"] = base64.b64encode(content).decode('utf-8') result["encoding"] = "base64" return result except Exception as e: logger.error(f"获取问题 {issue_key} 的附件 {attachment_id} 失败: {str(e)}") return {"error": str(e)}

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/yuezheng2006/mcp-server-jira'

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