MCP Tools Reference: gmailmcp.googleapis.com

টুল: search_threads

প্রমাণীকৃত ব্যবহারকারীর জিমেইল অ্যাকাউন্ট থেকে ইমেইল থ্রেডগুলোর তালিকা দেখায়।

এই টুলটি একটি কোয়েরি স্ট্রিং-এর উপর ভিত্তি করে থ্রেড ফিল্টার করতে পারে এবং পেজিনেশন সমর্থন করে। এটি থ্রেডগুলির একটি তালিকা ফেরত দেয়, যার মধ্যে তাদের আইডি এবং সম্পর্কিত বার্তা অন্তর্ভুক্ত থাকে। প্রতিটি সম্পর্কিত বার্তায় বার্তার মূল অংশের একটি সংক্ষিপ্ত রূপ, বিষয়, প্রেরক, প্রাপক ইত্যাদির মতো বিবরণ থাকে। view প্যারামিটারটি নিয়ন্ত্রণ করে যে সম্পর্কিত বার্তাগুলিতে কোন ফিল্ডগুলি পূরণ করা হবে। ডিফল্টরূপে (অথবা THREAD_VIEW_MINIMAL সাথে), এতে বিষয় এবং সংক্ষিপ্ত রূপ অন্তর্ভুক্ত থাকে। বিষয় এবং সংক্ষিপ্ত রূপ বাদ দিতে THREAD_VIEW_METADATA_ONLY ব্যবহার করুন। মনে রাখবেন যে এই টুলটি সম্পূর্ণ বার্তার মূল অংশ ফেরত দেয় না; প্রয়োজনে সম্পূর্ণ বার্তার মূল অংশ পেতে একটি থ্রেড আইডি সহ 'get_thread' টুলটি ব্যবহার করুন। বাদ দেওয়া শর্তযুক্ত থ্রেডগুলিও ফলাফলে প্রদর্শিত হতে পারে। এটি ঘটে কারণ Gmail প্রথমে মিলে যাওয়া বার্তাগুলি শনাক্ত করে। উদাহরণস্বরূপ, আপনি যদি -is:starred লিখে অনুসন্ধান করেন, Gmail একটি সম্পূর্ণ থ্রেড খুঁজে পাবে যদি তাতে অন্তত একটি আনস্টারড বার্তা থাকে, এমনকি যদি সেই একই কথোপকথনের অন্যান্য ইমেলগুলি স্টারড করা থাকে।

নিম্নলিখিত নমুনাটি দেখায় কিভাবে curl ব্যবহার করে ` search_threads MCP টুলটি চালু করতে হয়।

কার্ল অনুরোধ
curl --location 'https://gmailmcp.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": "search_threads",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

ইনপুট স্কিমা

SearchThreads RPC-এর জন্য অনুরোধ বার্তা।

সার্চথ্রেডস অনুরোধ

JSON উপস্থাপনা
{

  "pageSize": integer

  "pageToken": string

  "query": string

  "includeTrash": boolean

  "view": enum (ThreadView)
}
ক্ষেত্র

ইউনিয়ন ফিল্ড _page_size .

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

pageSize

integer

ঐচ্ছিক। ফেরত দেওয়ার জন্য থ্রেডের সর্বোচ্চ সংখ্যা। নির্দিষ্ট না করা হলে, ডিফল্ট মান ২০ হয়। সর্বোচ্চ অনুমোদিত মান হলো ৫০।

ইউনিয়ন ফিল্ড _page_token .

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

pageToken

string

ঐচ্ছিক। তালিকার ফলাফলের একটি নির্দিষ্ট পৃষ্ঠা আনার জন্য পৃষ্ঠা টোকেন। প্রথম পৃষ্ঠাটি আনতে এটি খালি রাখুন। এটি প্রধানত পেজিনেশনের জন্য ব্যবহৃত হয়, যাতে পূর্ববর্তী SearchThreads কল যেখানে শেষ হয়েছিল সেখান থেকে ফলাফল আনা চালিয়ে যাওয়া যায়, বিশেষ করে যখন কোয়েরির সাথে মিলে যাওয়া থ্রেডের সংখ্যা page_size সীমা অতিক্রম করে।

ইউনিয়ন ফিল্ড _query .

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

query

string

ঐচ্ছিক। থ্রেড ফিল্টার করার জন্য একটি কোয়েরি স্ট্রিং। এই টুলটি ব্যবহার করার জন্য স্বাভাবিক ভাষার কোয়েরিগুলোকে আগে থেকেই জিমেইল সিনট্যাক্স কোয়েরিতে রূপান্তর করতে হবে। এটি বাদ দিলে, সমস্ত থ্রেড তালিকাভুক্ত করা হবে (ডিফল্টরূপে স্প্যাম এবং ট্র্যাশ বাদে)।

বিভাগ অনুযায়ী সমর্থিত অপারেটর:

প্রেরক ও প্রাপক:

  • from:<email> — কোনো নির্দিষ্ট ব্যক্তির পক্ষ থেকে পাঠানো হয়েছে।
  • to:<email> — কোনো নির্দিষ্ট ব্যক্তিকে পাঠানো হয়েছে।
  • cc:<email> — সিসি-তে থাকা নির্দিষ্ট ব্যক্তিবর্গ।
  • bcc:<email> — বিসিসি-তে নির্দিষ্ট ব্যক্তিদের অন্তর্ভুক্ত করুন।
  • deliveredto:<email> — একটি নির্দিষ্ট ঠিকানায় পৌঁছে দেওয়া হয়েছে।
  • list:<email> — একটি নির্দিষ্ট মেইলিং তালিকা থেকে।

সময় ও তারিখ:

  • after:YYYY/MM/DD / newer:YYYY/MM/DD — কোনো নির্দিষ্ট তারিখের পরে প্রাপ্ত।
  • before:YYYY/MM/DD / older:YYYY/MM/DD — কোনো নির্দিষ্ট তারিখের আগে প্রাপ্ত।
  • older_than:<duration> — একটি নির্দিষ্ট সময়কালের চেয়ে পুরোনো (যেমন, 1y , 2d )।
  • newer_than:<duration> — একটি নির্দিষ্ট সময়কালের চেয়ে নতুন।

বিষয়বস্তু:

  • subject:<words> — বিষয় লাইনে থাকা শব্দসমূহ।
  • has:<type> — নির্দিষ্ট ধরনের কন্টেন্ট আছে (অ্যাটাচমেন্ট, ড্রাইভ, ইউটিউব, ডকুমেন্ট)।
  • filename:<name> — একটি নির্দিষ্ট নাম বা প্রকারের সংযুক্তি।
  • "<word/phrase>" — কোনো নির্দিষ্ট শব্দ বা শব্দগুচ্ছ দিয়ে অনুসন্ধান করুন। (উদাহরণস্বরূপ, "holiday" , "holiday vacation" )।
  • +<word> — একটি শব্দ হুবহু মেলান। (উদাহরণস্বরূপ, +holiday , +unicorn )
  • rfc822msgid:<id> — নির্দিষ্ট বার্তা আইডি হেডার।
  • AROUND <distance> — কাছাকাছি থাকা শব্দ খুঁজুন (উদাহরণস্বরূপ, holiday AROUND 10 vacation )।

লেবেল ও বিভাগসমূহ:

  • label:<name> — একটি নির্দিষ্ট লেবেলের অধীনে। এই টুলটি লেবেল আইডি গ্রহণ করে, প্রদর্শিত নাম নয়। আইডি পেতে list_labels টুলটি ব্যবহার করুন।
  • category:<name> — কোনো একটি বিভাগের অন্তর্গত (প্রাথমিক, সামাজিক, প্রচারমূলক, হালনাগাদ, ফোরাম, সংরক্ষণ, ক্রয়)।
  • in:<label> — নির্দিষ্ট লেবেলে (আর্কাইভ, স্নুজড, ট্র্যাশ, সেন্ট, ইনবক্স) অনুসন্ধান করুন। উদাহরণস্বরূপ, in:trash , in:inbox । আর্কাইভ করা এবং পাঠানো বার্তাগুলো ডিফল্টরূপে অন্তর্ভুক্ত থাকে; এগুলো বাদ দিতে -in:archive এবং -in:sent ব্যবহার করুন। ড্রাফটগুলো টুলটি দ্বারা ডিফল্টরূপে স্পষ্টভাবে বাদ দেওয়া হয়। অনুসন্ধান শুধুমাত্র ইনবক্সে সীমাবদ্ধ করতে in:inbox ব্যবহার করুন।
  • has:userlabels — কোনো ব্যবহারকারী লেবেল আছে কি না।
  • has:nouserlabels — এর কোনো ব্যবহারকারী লেবেল নেই।
  • has:*-star — নির্দিষ্ট তারার রঙ (যদি সক্রিয় করা থাকে, উদাহরণস্বরূপ, has:yellow-star )।
  • in:draft — ড্রাফটের মধ্যে অনুসন্ধান করুন। -in:draft মানে হলো অনুসন্ধানের ফলাফল থেকে ড্রাফট বাদ দেওয়া।
  • in:sent — প্রেরিত বার্তাগুলির মধ্যে অনুসন্ধান করুন।
  • in:anywhere — সব ফোল্ডারে (স্প্যাম ও ট্র্যাশ সহ) অনুসন্ধান করুন।

অবস্থা:

  • is:<status> — স্ট্যাটাস অনুযায়ী অনুসন্ধান করুন (গুরুত্বপূর্ণ, তারকাচিহ্নিত, অপঠিত, পঠিত, নীরব)।

আকার:

  • size:<bytes> — বাইটে নির্দিষ্ট আকার।
  • larger:<size> / smaller:<size> — কোনো আকারের চেয়ে বড় বা ছোট (উদাহরণস্বরূপ, 10MB-এর জন্য 10M )।

যুক্তি ও দলবদ্ধকরণ:

  • AND — সকল শর্ত পূরণ করুন (ডিফল্ট আচরণ)।
  • OR বা { } — এক বা একাধিক শর্ত পূরণ করতে হবে (উদাহরণস্বরূপ, from:amy OR from:david , {from:amy from:david} )।
  • - (মাইনাস) — বাদ দেওয়ার শর্তাবলী (উদাহরণস্বরূপ, -movie )।
  • ( ) — একাধিক সার্চ টার্মকে একত্রিত করুন (উদাহরণস্বরূপ, subject:(dinner film) )।

উদাহরণ:

  • subject:OneMCP Update
  • from:user@example.com
  • to:user2@example.com AND newer_than:7d
  • project proposal has:attachment
  • is:unread -in:draft

ইউনিয়ন ফিল্ড _include_trash .

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

includeTrash

boolean

ঐচ্ছিক। ফলাফলে ট্র্যাশ থেকে থ্রেড অন্তর্ভুক্ত করুন। ডিফল্টরূপে এটি ফলস থাকে।

ইউনিয়ন ফিল্ড _view .

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

view

enum ( ThreadView )

ঐচ্ছিক। থ্রেড তালিকার থ্রেডগুলির জন্য পূরণ করা ফিল্ডগুলি নিয়ন্ত্রণ করে। ডিফল্ট হিসেবে THREAD_VIEW_MINIMAL ব্যবহৃত হয়। THREAD_VIEW_MINIMAL রিটার্ন করে id, snippet, subject, from, to, cc, date, labelIds। THREAD_VIEW_METADATA_ONLY রিটার্ন করে id, from, to, cc, date, labelIds।

থ্রেডভিউ

ListThreads এবং SearchThreads রেসপন্সে থ্রেডগুলোর জন্য পূরণকৃত ফিল্ডগুলো নিয়ন্ত্রণ করার জন্য ব্যবহৃত Enum।

এনাম
THREAD_VIEW_UNSPECIFIED পূর্ববর্তী সংস্করণের সাথে সামঞ্জস্য রক্ষার জন্য THREAD_VIEW_MINIMAL-এর সাথে ম্যাপ করা হয়েছে।
THREAD_VIEW_METADATA_ONLY আইডি, প্রেরক, প্রাপক, সিসি, তারিখ এবং লেবেলআইডি ফেরত দেয়।
THREAD_VIEW_MINIMAL আইডি, স্নিপেট, বিষয়, প্রেরক, প্রাপক, সিসি, তারিখ এবং লেবেলআইডি ফেরত দেয়।

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

SearchThreads RPC-এর প্রতিক্রিয়া বার্তা।

সার্চথ্রেডসরেসপন্স

JSON উপস্থাপনা
{
  "threads": [
    {
      object (Thread)
    }
  ],
  "nextPageToken": string,
  "resultCountEstimate": string
}
ক্ষেত্র
threads[]

object ( Thread )

থ্রেড সারাংশগুলোর তালিকা।

nextPageToken

string

একটি টোকেন যা পরবর্তী কলে থ্রেডের পরবর্তী পৃষ্ঠা পুনরুদ্ধার করতে ব্যবহার করা যেতে পারে। এটি কেবল তখনই উপস্থিত থাকে যখন আরও ফলাফল থাকে। যদি কোয়েরির সাথে মিলে যাওয়া থ্রেডের সংখ্যা page_size সীমা অতিক্রম করে, তাহলে রেসপন্সে একটি next_page_token থাকবে। ফলাফলের পরবর্তী পৃষ্ঠা পুনরুদ্ধার করতে, পরবর্তী SearchThreadsRequest এর page_token ফিল্ডে এই টোকেনটি পাস করুন।

resultCountEstimate

string ( int64 format)

এই কোয়েরিটির জন্য আনুমানিক ফলাফলের সংখ্যা। এটিকে একটি নিম্নসীমা হিসেবে গণ্য করা উচিত, তাই উদাহরণস্বরূপ, যদি এটি ৫০০ হয়, তবে সংখ্যাটি ব্যবহারকারীকে "৫০০+" হিসাবে জানানো যেতে পারে।

থ্রেড

JSON উপস্থাপনা
{
  "id": string,
  "messages": [
    {
      object (Message)
    }
  ]
}
ক্ষেত্র
id

string

থ্রেডটির অনন্য শনাক্তকারী।

messages[]

object ( Message )

থ্রেডটিতে থাকা বার্তাগুলোর একটি তালিকা, যা কালানুক্রমিকভাবে সাজানো।

বার্তা

JSON উপস্থাপনা
{
  "id": string,
  "snippet": string,
  "subject": string,
  "sender": string,
  "toRecipients": [
    string
  ],
  "ccRecipients": [
    string
  ],
  "date": string,
  "plaintextBody": string,
  "attachmentIds": [
    string
  ],
  "htmlBody": string,
  "attachments": [
    {
      object (AttachmentMetadata)
    }
  ],
  "labelIds": [
    string
  ]
}
ক্ষেত্র
id

string

বার্তাটির অনন্য শনাক্তকারী।

snippet

string

বার্তার মূল অংশের একটি অংশ।

subject

string

হেডার থেকে সংগৃহীত বার্তার বিষয়:

sender

string

প্রেরকের ইমেল ঠিকানা।

toRecipients[]

string

প্রাপকের ইমেল ঠিকানায়।

ccRecipients[]

string

সিসি প্রাপকদের ইমেল ঠিকানা।

date

string

বার্তার তারিখ ISO 8601 ফরম্যাটে (YYYY-MM-DD)।

plaintextBody

string

সম্পূর্ণ মূল বিষয়বস্তু, যা শুধুমাত্র তখনই প্রদর্শিত হবে যদি MessageFormat-এর মান FULL_CONTENT হয়।

attachmentIds[]

string

শুধুমাত্র আউটপুট। অ্যাটাচমেন্ট আইডিগুলো কেবল তখনই পূরণ করা হবে, যদি MessageFormat-এর মান FULL_CONTENT হয়।

htmlBody

string

ইমেইলের HTML কন্টেন্ট, যা শুধুমাত্র তখনই পূরণ করা হবে যদি MessageFormat-এর মান FULL_CONTENT হয়।

attachments[]

object ( AttachmentMetadata )

শুধুমাত্র আউটপুট। অ্যাটাচমেন্টগুলো কেবল তখনই পূরণ করা হবে, যদি MessageFormat-এর মান FULL_CONTENT হয়।

labelIds[]

string

মেসেজের সাথে সংযুক্ত লেবেলগুলোর আইডি। এর মধ্যে ব্যবহারকারীর লেবেল এবং INBOX , SPAM , TRASH , UNREAD , STARRED , IMPORTANT , SENT , DRAFTCHAT মতো সাধারণ সিস্টেম লেবেলগুলোর আইডি অন্তর্ভুক্ত রয়েছে।

সংযুক্তি মেটাডেটা

JSON উপস্থাপনা
{
  "id": string,
  "mimeType": string,
  "filename": string
}
ক্ষেত্র
id

string

শুধুমাত্র আউটপুট। অ্যাটাচমেন্টটির আইডি।

mimeType

string

সংযুক্তিটির MIME টাইপ।

filename

string

সংযুক্তিটির ফাইলের নাম।

টুল টীকা

ধ্বংসাত্মক ইঙ্গিত: ❌ | স্বকীয় ইঙ্গিত: ✅ | শুধুমাত্র পঠনযোগ্য ইঙ্গিত: ✅ | উন্মুক্ত বিশ্ব ইঙ্গিত: ❌

অনুমোদনের পরিধি

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

  • https://mail.google.com/
  • https://www.googleapis.com/auth/gmail.modify
  • https://www.googleapis.com/auth/gmail.readonly