🇨🇳中文 🇯🇵日本語 🇰🇷한국어 🇩🇪Deutsch 🇪🇸Español 🇫🇷français 🇵🇹Português 🇷🇺Русский
MCP服务器用于操作Office文件,如Excel、Word、PowerPoint和Outlook。
您必须安装Office 2016及更高版本才能使用此MCP服务器。
下载最新版本并将其解压到任何位置。
然后在MCP服务器配置中添加以下配置。
{
"mcpServers": {
"office": {
"command": "DRIVER:\\PATH\\TO\\cs-office-mcp-server.exe",
"args": [],
"env": {}
}
}
}
如果您正在使用Codex,请参考以下内容。
%USERPROFILE%\.codex\config.toml
[mcp_servers.office]
command = 'cmd'
args = [
"/c",
'DRIVER:\PATH\TO\cs-office-mcp-server.exe',
]
env = { SystemRoot = 'C:\Windows' }
startup_timeout_sec = 300
tool_timeout_sec = 300
enabled = true
请注意,这仅支持已安装Office 2016(64位版本)或更高版本的Windows系统!
excel_run_macro运行指定Excel文件中的宏。
fullName*: Excel文件的完整路径。macroName*: 宏的名称。macroParameters: 宏的参数。最大数量为30。save: 执行宏后保存文件。password: 如果存在,则为Excel文件的密码。excel_read_used_range从指定的工作表中读取已使用的单元格范围的值。如果一个单元格为空,则不会包含在返回的结果集中。
fullName*: Excel文件的完整路径。sheetName*: Excel文件的工作表名称。password: 如果存在,则为Excel文件的密码。excel_get_sheets获取指定Excel文件的所有工作表名称。
fullName*: Excel文件的完整路径。password: 如果存在,则为Excel文件的密码。excel_write将数据写入指定工作表中的单元格或单元格范围。
fullName*: Excel文件的完整路径。如果不存在,则会创建该文件。sheetName: Excel文件的工作表名称。如果不存在,则会创建该工作表。data: 需要写入的数据。startColumn: 数据写入的第一个列字母(例如A)。startRow: 数据写入的第一个行号。password: 如果存在,则为Excel文件的密码。forceOverwriteFile: 当文件存在时强制覆盖以创建新的文件。forceOverwriteSheet: 当工作表存在时强制覆盖以创建新的工作表。excel_rename_sheet更改指定Excel文件的工作表名称。
fullName*: Excel文件的完整路径。oldSheetName*: Excel文件的旧工作表名称。newSheetName*: Excel文件的新工作表名称。password: 如果存在,则为Excel文件的密码。excel_copy_sheet复制指定Excel文件的工作表。
fullName*: Excel文件的完整路径。sourceSheetName*: Excel文件的源工作表名称。targetSheetName*: Excel文件的目标工作表名称。deleteTargetIfExists: 如果目标工作表存在,则先删除它。beforeSourceSheet: 复制后将目标工作表移动到源工作表左侧,否则移动到右侧。password: 如果存在,则为Excel文件的密码。excel_get_tables获取指定Excel文件的所有表格名称。
fullName*: Excel文件的完整路径。password: 如果存在,则为Excel文件的密码。excel_delete_sheet删除指定Excel文件的工作表。
fullName*: Excel文件的完整路径。sheetName*: Excel文件的工作表名称。password: 如果存在,则为Excel文件的密码。excel_get_table_content获取指定Excel文件中表格的内容。
fullName*: Excel文件的完整路径。tableName*: Excel文件的表格名称。password: 如果存在,则为Excel文件的密码。excel_find从Excel文件中查找值。
fullNameList*: 需要搜索的Excel文件的完整路径列表。searchValue*: 要搜索的值,可以使用通配符字符如 ?(任意单个字符),*(任意数量的字符),~ 后跟 ?,* 或 ~(问号、星号或波浪线)。matchPart: 当为真时,匹配搜索文本的任何部分;当为假时,匹配整个搜索文本。ignoreCase: 当为真时,忽略大小写差异;当为假时,不区分大小写。password: 如果所有文件都有相同的密码,则为Excel文件的密码。excel_read从指定的工作表中读取单元格或单元格范围的值。如果一个单元格为空,则不会包含在返回的结果集中。
fullName*: Excel文件的完整路径。sheetName*: Excel文件的工作表名称。startColumn: 数据写入的第一个列字母(例如A)。startRow: 数据写入的第一个行号。endColumn: 数据写入的最后一列字母(例如Z)。如果为空,则相对于 startColumn 使用 xlToRight。endRow: 数据写入的最后一行号。如果为空,则相对于 startRow 使用 xlDown。password: 如果存在,则为Excel文件的密码。excel_clear清除指定工作表中的单元格或单元格范围的值。
如果 startColumn 或 startRow 为空,则清除整个工作表。
fullName*: Excel文件的完整路径。sheetName*: Excel文件的工作表名称。startColumn: 数据写入的第一个列字母(例如A)。startRow: 数据写入的第一个行号。endColumn: 数据写入的最后一列字母(例如Z)。如果为空,则相对于 startColumn 使用 xlToRight。endRow: 数据写入的最后一行号。如果为空,则相对于 startRow 使用 xlDown。password: 如果存在,则为Excel文件的密码。word_run_macro运行指定Word文件中的宏。
fullName*: Word文件的完整路径。macroName*: 宏的名称。macroParameters: 宏的参数。最大数量为30。save: 执行宏后保存文件。password: 如果存在,则为Word文件的密码。word_clear清除指定Word文件的全部内容。
fullName*: Word文件的完整路径。password: 如果存在,则为Word文件的密码。word_read获取指定Word文件的文本内容。
fullName*: Word文件的完整路径。fromPage: 开始读取的页码。toPage: 结束读取的页码。如果为空,则读取到最后一页。password: 如果存在,则为Word文件的密码。word_write将数据写入Word文件。
fullName*: Word文件的完整路径。如果不存在,则会创建该文件。data: 需要写入的数据。insertAfter: 当为真时,在文档末尾追加数据;当为假时,在文档开头追加数据。insertNewline: 在写入现有文件且 newline 选项为真时追加换行符。当数据追加到文档末尾时,在数据前添加换行符;当数据追加到文档开头时,在数据后添加换行符。password: 如果存在,则为Word文件的密码。forceOverwriteFile: 当文件存在时强制覆盖以创建新的文件。word_find从Word文件中查找值。
fullNameList*: 需要搜索的Word文件的完整路径列表。searchValue*: 要搜索的值,可以使用通配符字符如 ?(任意单个字符),*(任意数量的字符),\ 后跟 ?,* 或 \(问号、星号或反斜杠)。matchPart: 当为真时,匹配较大单词的一部分;当为假时,匹配整个单词。ignoreCase: 当为真时,忽略大小写差异;当为假时,不区分大小写。password: 如果所有文件都有相同的密码,则为Word文件的密码。word_get_page_count获取指定Word文件的页数。
fullName*: Word文件的完整路径。password: 如果存在,则为Word文件的密码。word_replace替换Word文件中的值。
fullNameList*: 需要搜索的Word文件的完整路径列表。oldValue*: 要搜索的值,可以使用通配符字符如 ?(任意单个字符),*(任意数量的字符),\ 后跟 ?,* 或 \(问号、星号或反斜杠)。newValue*: 新的替换值。matchPart: 当为真时,匹配较大单词的一部分;当为假时,匹配整个单词。ignoreCase: 当为真时,忽略大小写差异;当为假时,不区分大小写。replaceAll: 当为真时,替换所有匹配项;当为假时,只替换第一个匹配项。password: 如果所有文件都有相同的密码,则为Word文件的密码。powerpoint_run_macro运行指定PowerPoint文件中的宏。
fullName*: PowerPoint文件的完整路径。macroName*: 宏的名称。macroParameters: 宏的参数。最大数量为30。save: 执行宏后保存文件。password: 如果存在,则为PowerPoint文件的密码。powerpoint_read获取指定PowerPoint文件的文本内容。
fullName*: PowerPoint文件的完整路径。fromSlide: 开始读取的幻灯片编号。toSlide: 结束读取的幻灯片编号。如果为空,则读取到最后一张幻灯片。password: 如果存在,则为PowerPoint文件的密码。powerpoint_find从PowerPoint文件中查找值。
fullNameList*: 需要搜索的PowerPoint文件的完整路径列表。searchValue*: 要搜索的值。matchPart: 当为真时,匹配较大单词的一部分;当为假时,匹配整个单词。ignoreCase: 当为真时,忽略大小写差异;当为假时,不区分大小写。password: 如果所有文件都有相同的密码,则为PowerPoint文件的密码。powerpoint_get_slide_count获取指定PowerPoint文件的幻灯片数量。
fullName*: PowerPoint文件的完整路径。password: 如果存在,则为PowerPoint文件的密码。outlook_read_appointments读取Outlook日历中的预约内容。
withinDays: 预约的日期范围。使用负数可读取过去的预约。outlook_send_appointment使用Outlook发送预约。
subject*: 预约的主题。participants*: 表示会议参与者的电子邮件地址数组。startTime*: 预约的开始时间。duration*: 预约的持续时间(分钟)。必须大于0。location: 预约的地点。body: 预约的正文内容。displayBeforeSend: 发送前显示预约,并在手动确认后发送,否则直接发送。outlook_get_inbox_mail_count获取Outlook收件箱中的邮件总数。
(无参数)
outlook_read_inbox_mails读取Outlook收件箱中的邮件内容。
startItem: 要读取的项目的起始位置,从1开始。maxItems: 最多读取的邮件数量。newestFirst: 返回邮件的排序顺序,具体优先考虑最近收到的项目。outlook_send_mail使用Outlook发送邮件。
subject*: 邮件的主题。sendTo*: 邮件的主要收件人。body*: 邮件正文内容。根据 useHtml 可以是纯文本或HTML。useHtml: 布尔值,指示邮件正文是否应格式化为HTML。sendCc: 邮件的抄送收件人。sendBcc: 邮件的密送收件人。displayBeforeSend: 发送前显示邮件,并在手动确认后发送,否则直接发送。outlook_find_inbox_mails查找Outlook收件箱中的邮件内容。
searchValue: 要搜索的值将在主题和正文中进行搜索。如果为空,则不进行过滤。senders: 需要指定发件人的电子邮件或姓名。如果为空,则不进行过滤。maxItems: 返回的最大邮件数量。newestFirst: 返回邮件的排序顺序,具体优先考虑最近收到的项目。