MCP Tools Reference: sheetsmcp.googleapis.com

টুল: get_spreadsheet

উল্লিখিত স্প্রেডশিটের কন্টেন্ট রিটার্ন করে। প্রদত্ত স্প্রেডশিট আইডির জন্য শীর্ষক, শিটের নাম, গ্রিড প্রপার্টি ও অন্যান্য মেটাডেটা রিটার্ন করে। এছাড়াও, অনুরোধ করা হলে সম্পূর্ণ গ্রিড ডেটা রিটার্ন করে।

REST API-তে spreadsheets.get-এর সাথে সম্পর্কিত: https://developers.google.com/workspace/sheets/api/reference/rest/v4/spreadsheets/get

স্কিমা: - spreadsheet_id (স্ট্রিং, প্রয়োজনীয়): অনুরোধ করার জন্য স্প্রেডশিটের আইডি। - include_grid_data (বুলিয়ান, ঐচ্ছিক): গ্রিড ডেটা ফেরত দিতে হলে True। ডিফল্ট হিসেবে false থাকে। - fields (স্ট্রিংয়ের অ্যারে, ঐচ্ছিক): কোন প্রপার্টি রিটার্ন করতে হবে তা নির্দিষ্ট করে ফিল্ড মাস্ক (যেমন, ["sheets.properties.sheetId", "sheets.properties.title"])। - comments_included (বুলিয়ান, ঐচ্ছিক): এটি 'সত্য' হলে, উত্তরে কমেন্ট অন্তর্ভুক্ত করা হবে। ডিফল্ট হিসেবে false থাকে। - ranges (স্ট্রিংয়ের অ্যারে, ঐচ্ছিক): স্প্রেডশিট থেকে রিট্রিভ করার জন্য A1 বা R1C1 রেঞ্জ। উল্লেখ করা না থাকলে, সম্পূর্ণ স্প্রেডশিট রিটার্ন করা হয়।

get_spreadsheet MCP টুল কল করার জন্য কীভাবে curl ব্যবহার করতে হয় তা নিম্নলিখিত কোড স্যাম্পেল থেকে জানতে পারবেন।

কার্ল করার অনুরোধ
curl --location 'https://sheetsmcp.googleapis.com/mcp/v1' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "get_spreadsheet",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

ইনপুট স্কিমা

GetContentRequest

JSON উপস্থাপনা
{
  "spreadsheetId": string,
  "includeGridData": boolean,
  "fields": [
    string
  ],
  "ranges": [
    string
  ],

  "commentsIncluded": boolean
}
ফিল্ড
spreadsheetId

string

প্রয়োজনীয়। অনুরোধ করার জন্য স্প্রেডশিটের আইডি।

includeGridData

boolean

গ্রিড ডেটা ফেরত দেওয়া হলে True।

fields[]

string

ঐচ্ছিক। Spreadsheets API-এর কোন কোন প্রপার্টি রিটার্ন করতে হবে তা নির্দিষ্ট করার জন্য ফিল্ড মাস্ক, ফিল্ড মাস্ক কীভাবে ব্যবহার করতে হয় সেই সম্পর্কে আরও জানতে https://developers.google.com/workspace/sheets/api/guides/field-masks দেখুন। গুরুত্বপূর্ণ: Sheets API-এর JSON স্ট্রাকচারের উপর ভিত্তি করে হায়ারার্কিক্যাল পাথ ব্যবহার করুন। - যেমন, শীটের নাম ও আইডি পেতে, 'title,sheetId'-এর পরিবর্তে 'sheets.properties.sheetId' ও 'sheets.properties.title' ব্যবহার করুন। - শুধুমাত্র প্রয়োজনীয় ফিল্ড যোগ করুন। - টেবিল পেতে, এগুলি ব্যবহার করুন: 'sheets.tables' বা 'sheets.properties'। - শীটের নাম ও আইডি পেতে, এগুলি ব্যবহার করুন: 'sheets.properties.sheetId' ও 'sheets.properties.title'।

ranges[]

string

ঐচ্ছিক। স্প্রেডশিট থেকে যে রেঞ্জ রিট্রিভ করতে হবে তার A1 নোটেশন বা R1C1 নোটেশন। উল্লেখ করা না থাকলে, সম্পূর্ণ স্প্রেডশিট রিটার্ন করা হয়।

ইউনিয়ন ফিল্ড _comments_included।

_comments_included শুধুমাত্র নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:

commentsIncluded

boolean

ঐচ্ছিক। সত্য হলে, উত্তরে কমেন্ট অন্তর্ভুক্ত করা হবে। সাধারণত, কমেন্ট অন্তর্ভুক্ত করা হয় না।

আউটপুট স্কিমা

JSON অবজেক্টের প্রতিনিধিত্ব করে।

JSON অবজেক্টের শব্দার্থ সঠিকভাবে ক্যাপচার করার উদ্দেশ্যে তৈরি করা কী-ভ্যালু ম্যাপের কোনও নির্দিষ্ট ক্রম নেই। এটি ProtoJSON ফর্ম্যাটে মেসেজ ফিল্ড হিসেবে যেকোনও নির্বিচারে JSON পেলোড পার্স করার সুবিধা দেয়।

এটি ইন্টারঅপারেবল JSON-এর জন্য RFC 8259 নির্দেশিকা মেনে চলে: উল্লেখযোগ্যভাবে, এই ধরনের ডেটা বড় Int64 ভ্যালু বা NaN/Infinity নম্বরকে উপস্থাপন করতে পারে না, কারণ JSON ফর্ম্যাট সাধারণত এর নম্বর ধরনের মধ্যে সেইসব ভ্যালুকে সাপোর্ট করে না।

আপনি যদি নিজের মেসেজে কোনও JSON পার্স করতে না চান, তাহলে এই ধরনের মেসেজ ব্যবহার করার পরিবর্তে কাস্টম টাইপ করা মেসেজ ব্যবহার করা উচিত।

Struct

JSON উপস্থাপনা
{
  "fields": {
    string: value,
    ...
  }
}
ফিল্ড
fields

map (key: string, value: value (Value format))

ডায়নামিক টাইপ করা ভ্যালুর আনঅর্ডারড ম্যাপ।

"key": value জোড়ের তালিকা সহ একটি অবজেক্ট। উদাহরণ: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

FieldsEntry

JSON উপস্থাপনা
{
  "key": string,
  "value": value
}
ফিল্ড
key

string

value

value (Value format)

ভ্যালু

JSON উপস্থাপনা
{

  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
}
ফিল্ড
ইউনিয়ন ফিল্ড kind। ভ্যালুর ধরন। kind শুধুমাত্র নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
nullValue

null

JSON null-এর প্রতিনিধিত্ব করে।

numberValue

number

JSON নম্বরকে বোঝায়। NaN, Infinity বা -Infinity হলে চলবে না, কারণ JSON-এ এগুলি কাজ করে না। এছাড়াও, এটি বড় Int64 মানকে উপস্থাপন করতে পারে না, কারণ JSON ফর্ম্যাট সাধারণত এর সংখ্যাসূচক ধরনের মধ্যে সেগুলিকে সমর্থন করে না।

stringValue

string

JSON স্ট্রিং বোঝায়।

boolValue

boolean

JSON বুলিয়ান (JSON-এ true বা false লিটেরাল) বোঝায়।

structValue

object (Struct format)

JSON অবজেক্টের প্রতিনিধিত্ব করে।

listValue

array (ListValue format)

JSON অ্যারের প্রতিনিধিত্ব করে।

ListValue

JSON উপস্থাপনা
{
  "values": [
    value
  ]
}
ফিল্ড
values[]

value (Value format)

ডায়নামিক টাইপ করা ভ্যালুর রিপিট করা ফিল্ড।

NullValue

JSON null-এর প্রতিনিধিত্ব করে।

NullValue হল একটি সেন্টিনেল, যা Value টাইপ ইউনিয়নের জন্য নাল ভ্যালু বোঝাতে শুধুমাত্র একটি ভ্যালু সহ একটি এনুম ব্যবহার করে।

0 ছাড়া অন্য কোনও ভ্যালু সহ NullValue ধরনের ফিল্ডকে ভুল বলে বিবেচনা করা হয়। বেশিরভাগ ProtoJSON সিরিয়ালাইজার, পূর্ণসংখ্যা ভ্যালু যাই হোক না কেন, JSON null হিসেবে সেট করা null_value সহ Value এমিট করবে এবং তাই 0 ভ্যালুতে রাউন্ড ট্রিপ করবে।

Enums
NULL_VALUE নাল ভ্যালু।

টুল অ্যানোটেশন

কোনও টুলের প্রাথমিক ঝুঁকি বর্ণনা করতে MCP ক্লায়েন্টদের কাছে টুল অ্যানোটেশন পাঠানো হয়। বেশিরভাগ ক্লায়েন্ট এই ধরনের ইঙ্গিতকে অবিশ্বস্ত হিসেবে বিবেচনা করে, তবে ব্যবহারকারীকে কখন কনফার্মেশন প্রম্পট পাঠানো হতে পারে তা নির্ধারণ করতে এগুলি ব্যবহার করা যেতে পারে।

টাইটেল স্ট্রিংয়ের সাথে, নিম্নলিখিত বুলিয়ান হিন্টকে এইভাবে সংজ্ঞায়িত করা হয়:

  • readOnlyHint: সত্য হলে, টুলটি তার এনভায়রনমেন্ট পরিবর্তন করে না। ডিফল্ট: false.
  • destructiveHint: মান 'সত্য' হলে, টুলটি ডেটা মুছে দেওয়ার মতো অ্যাকশন পারফর্ম করতে পারবে। এটি মিথ্যা হলে, টুলটি শুধুমাত্র যোগাত্মক অ্যাকশন পারফর্ম করতে পারবে। ডিফল্ট: true.
  • idempotentHint: true হলে, একই আর্গুমেন্ট সহ টুলটি বারবার কল করলে এর এনভায়রনমেন্টের উপর কোনও অতিরিক্ত প্রভাব পড়বে না। ডিফল্ট: false.
  • openWorldHint: এটি সত্য হলে, টুলটি এক্সটার্নাল এন্টিটির 'ওপেন ওয়ার্ল্ড' ইন্টার‍্যাক্ট করতে পারবে। ফলস হলে, টুলটি শুধুমাত্র ইন্টার্নাল এন্টিটির সাথে ইন্টার‍্যাক্ট করতে পারবে। যেমন, ওয়েব সার্চ টুল হল ওপেন ওয়ার্ল্ড, কিন্তু মেমরি টুল ওপেন ওয়ার্ল্ড নয়।

ধ্বংসাত্মক ইঙ্গিত: ❌ | আইডেমপোটেন্ট ইঙ্গিত: ✅ | শুধুমাত্র-পঠন ইঙ্গিত: ✅ | ওপেন ওয়ার্ল্ড ইঙ্গিত: ✅

অনুমোদনের স্কোপ

নিম্নলিখিত OAuth স্কোপের মধ্যে একটি প্রয়োজন:

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/spreadsheets.readonly
  • https://www.googleapis.com/auth/drive
  • https://www.googleapis.com/auth/drive.file
  • https://www.googleapis.com/auth/spreadsheets