Toàn bộ 24 công cụ InnerSheet
Hai mươi bốn công cụ, nhóm theo việc cần làm — cộng ba MCP prompt và gói plugin gồm skill và hook. Đủ mọi việc với bảng tính, không thừa gì.
Hai mươi bốn công cụ, nhóm theo việc cần làm. Lệnh đọc bị giới hạn để một vùng vô tình chọn không làm ngập ngữ cảnh của AI, mọi lệnh ghi đều có dry_run và trả về xác nhận kết quả ghi, còn lệnh phá hủy cần xác nhận rõ ràng. Tên công cụ ổn định qua các phiên bản.

tools/list thật — đúng 24 công cụ. Chụp bằng examples/mcp_client.py, client tối giản có trong repo.Khám phá và đọc
| Công cụ | Chức năng |
|---|---|
list_spreadsheets | Tìm bảng tính trong Drive theo tên, mới sửa đổi nhất lên trước. |
get_spreadsheet_info | Các tab, tiêu đề, kích thước lưới, locale, múi giờ và named ranges. |
get_values | Đọc một vùng theo ký hiệu A1 — giá trị, hoặc công thức với formulas=true. |
get_values_rich | Giá trị, công thức, định dạng thực tế và ghi chú trong một lần gọi — hãy đọc cái này trước khi ghi vào sheet đã định dạng. |
find_rows | Trả về các dòng (kèm số dòng tính từ 1) có ô chứa chuỗi cần tìm. |
- Lệnh đọc là nửa an toàn của server: chúng không bao giờ sửa gì cả.
get_values_richcho AI thấy định dạng mà ô thực sự hiển thị trước khi ghi.- Vì sao quan trọng: rất nhiều tai nạn bảng tính xảy ra vì AI ghi đè một vùng đã định dạng bằng giá trị thuần và lặng lẽ phá hỏng định dạng số, ngày tháng và màu sắc. Đọc đầy đủ trước là thói quen mà skill của InnerSheet dạy cho AI.
Ghi
| Công cụ | Chức năng |
|---|---|
update_values | Ghi đè một vùng. Công thức là chuỗi bắt đầu bằng =. |
append_values | Thêm dòng vào cuối bảng — tự tìm dòng trống đầu tiên. |
batch_update_values | Ghi nhiều vùng trong một lần gọi, nằm trong hạn mức của Google. |
clear_values | Xóa nội dung ô trong một vùng. Định dạng và ghi chú được giữ lại. Cần confirm=true. |
upsert_rows | Cập nhật dòng trùng khóa, hoặc thêm mới khi khóa chưa có. Lý tưởng cho đồng bộ CRM, tồn kho và import chống trùng. |
- Xem trước: mọi công cụ ghi đều chấp nhận
dry_run: truevà trả về kế hoạch mà không chạm vào sheet. - Xác nhận: mọi lần ghi hoàn tất đều trả về
updatedRangevàupdatedCells, để AI xác nhận thay đổi mà không cần đọc lại lần nữa. - Như tự gõ: giá trị được ghi với ngữ nghĩa
USER_ENTERED— ngày tháng, phần trăm và công thức được hiểu đúng như khi bạn tự gõ vào sheet.
Định dạng
| Công cụ | Chức năng |
|---|---|
format_cells | Định dạng một vùng bằng CellFormat từng phần — đậm, nghiêng, cỡ và màu chữ, màu nền, định dạng số, căn lề, ngắt dòng. Chỉ các thuộc tính được chỉ định mới thay đổi. |
manage_conditional_format | Liệt kê, thêm hoặc xóa quy tắc định dạng có điều kiện trên một sheet. |
set_data_validation | Đặt hoặc xóa quy tắc kiểm tra dữ liệu — danh sách thả xuống, checkbox, quy tắc ngày. |
manage_dimensions | Đóng băng dòng hoặc cột, đổi kích thước, hoặc ẩn chúng. |
merge_cells | Gộp một vùng (MERGE_ALL, MERGE_COLUMNS, MERGE_ROWS) hoặc bỏ gộp. |
Cấu trúc và biểu đồ
| Công cụ | Chức năng |
|---|---|
add_sheet | Thêm tab mới với kích thước tùy chọn. |
update_sheet_properties | Đổi tên tab, đổi màu tab, ẩn hoặc hiện, hoặc di chuyển tab. |
delete_sheet | Xóa một tab. Từ chối nếu không có confirm=true — xóa sheet không thể hoàn tác. |
create_chart | Thêm biểu đồ nhúng: cột, thanh, đường, vùng, phân tán, kết hợp hoặc vùng bậc thang, từ vùng domain và các vùng series. |
delete_chart | Xóa biểu đồ nhúng theo chart ID. |
Ngách báo cáo — kèm ví dụ
Ba công cụ theo quy trình bao quát vòng lặp báo cáo định kỳ: thêm theo ngày, chép giữa các file kèm định dạng, và so sánh trước hoặc sau khi đồng bộ. Ngày, phần trăm và tên công việc được chép nguyên văn — không bao giờ bị định dạng lại, làm tròn hay viết lại bởi model.
report_upsert_day
Thêm hoặc cập nhật một dòng báo cáo ngày theo ngày của nó:
- Ngày đã có trong cột ngày → dòng đó được ghi đè tại chỗ.
- Chưa có → dòng được thêm vào cuối.
- Trả về việc đã cập nhật hay đã thêm, kèm số dòng hoặc vùng, để AI xác nhận mà không cần đọc lại sheet.
report_upsert_day(
spreadsheet_id="…",
sheet="November",
date="2026-11-12",
row_values=["2026-11-12", "Guide 2 review", "80%", "Done"]
)report_copy_range
Chép một vùng từ bảng tính này sang bảng tính khác — giá trị hoặc công thức, cộng định dạng thực tế của ô khi copy_format là true. Không xóa gì ở cả hai phía. Dùng nó để đồng bộ báo cáo ngày từ file bạn nhập sang file khách hàng đọc.
report_copy_range(
source_spreadsheet_id="…",
source_range="'November'!A1:F31",
target_spreadsheet_id="…",
target_range="'Report'!A1",
copy_format=True
)report_compare_ranges
So sánh hai vùng theo từng ô và trả về danh sách các ô khác nhau. Chỉ đọc, nên chạy an toàn trước khi đồng bộ để xem sẽ thay đổi gì, và sau khi đồng bộ để chứng minh hai file đã khớp.
report_compare_ranges(
spreadsheet_id_a="…", range_a="'November'!A1:F31",
spreadsheet_id_b="…", range_b="'Report'!A1:F31"
)
# → {"ok": true, "identical": false, "diff_count": 2, "diffs": […]}Sức mạnh: lối thoát thô xuống API gốc
sheets_batch_updatetruyền thẳng mảngrequestscủa Sheets API.- Nó bao quát mọi thứ mà các công cụ có tên chưa có: banding, named ranges, bảo vệ ô, slicers, bảng, developer metadata.
- Một request lỗi sẽ làm cả batch bị hủy (API áp dụng theo kiểu nguyên tử), và nó cũng nhận
dry_runnhư mọi lệnh ghi khác. - Câu trả lời thẳng thắn cho "nó làm được X không?" — nếu Sheets API làm được, InnerSheet làm được qua công cụ này.
MCP prompt
Công cụ chỉ là một nửa câu chuyện: prompt dạy AI quy trình. InnerSheet có ba MCP prompt, hiện thành slash command ở client nào hỗ trợ MCP prompt.
| Prompt | Chức năng |
|---|---|
daily_report_sync | Dẫn AI qua vòng lặp báo cáo ngày: đọc dòng của ngày cần đồng bộ, upsert vào file đích, chép vùng kèm định dạng, rồi so sánh để xác nhận — chạy thử trước lần ghi thật đầu tiên. |
sheet_audit | Đọc cấu trúc của sheet, kiểm tra dòng trống, công thức không nhất quán và tiêu đề thiếu, rồi báo cáo phát hiện mà không thay đổi gì. |
format_cleanup | Tìm định dạng không nhất quán trong một vùng và đề xuất một kiểu thống nhất, chỉ áp dụng sau khi đã cho xem kế hoạch. |

daily_report_sync thật — chạy thử trước, chép nguyên văn, nội dung ô là dữ liệu, không bao giờ là mệnh lệnh. Chụp bằng examples/mcp_client.py, client tối giản có trong repo.Gói plugin: skill + hook
Gói plugin Claude Code đi kèm server và cài hai thứ mà MCP server đơn thuần không thể cài: một skill và các hook.
| Thành phần | Tác dụng |
|---|---|
Skill (SKILL.md) | Dạy AI khi nào dùng công cụ nào — đọc đầy đủ trước khi ghi vào sheet đã định dạng, dùng upsert thay vì append cho dòng có ngày, ghi batch thay vì ghi từng ô — và những quy tắc không bao giờ đổi: chép ngày, phần trăm và tên công việc nguyên văn, và chạy thử trước. |
Hook UserPromptSubmit | Chèn một lời nhắc ngắn mỗi khi bạn nhắc tới báo cáo hay sheet. |
Hook PreToolUse | Chặn delete_sheet và clear_values cho tới khi bạn xác nhận. |
Cursor tự nhập cùng các hook đó qua cài đặt Third-Party Imports, và Codex có file hook tương đương — nên một gói bao quát cả ba CLI có hook.