Integrasi MCP dengan IBM Bob

Model Context Protocol (MCP) muncul dari masalah ketidakcocokan. Dalam kehidupan kita sehari-hari, ketidakcocokan membuat kita tidak nyaman dengan berbagai cara.

Pernahkah Anda membawa alat penata rambut atau perangkat elektronik saat bepergian ke luar negeri, lalu menyadari bahwa stekernya tidak cocok dengan stopkontak di sana? Dari perspektif pengembang, masalah ini sama sulitnya dengan membangun API dan alat pengembangan untuk agen AI Anda yang tampaknya tidak dapat terhubung atau dipanggil dengan benar. Di situlah MCP mengurangi masalah ketidakcocokan ini.

Apa itu MCP?

Model Context Protocol (MCP), yang diperkenalkan oleh Anthropic pada tahun 2024, berfungsi sebagai lapisan standardisasi untuk aplikasi AI agar dapat berkomunikasi secara efektif dengan layanan eksternal, seperti alat, sumber data/kumpulan data, dan templat yang telah ditentukan sebelumnya. MCP pada dasarnya berfungsi sebagai standar terbuka dan konektor untuk interaksi alat AI. Arsitektur MCP dapat dibagi menjadi tiga komponen arsitektur utama:

  1. Host MCP: Aplikasi AI menerima permintaan pengguna dan mencari akses ke konteks melalui MCP
  2. Klien MCP: Komunikasi dalam ekosistem MCP antara host dan server harus dilakukan melalui klien. Klien ini berada di dalam host dan mengubah permintaan pengguna menjadi format terstruktur yang dapat diproses oleh protokol terbuka.
  3. Server MCP: Layanan eksternal yang menyediakan konteks ke LLM dengan mengonversi permintaan pengguna menjadi tindakan server. Contoh integrasi server MCP, terkadang disebut konektor MCP, termasuk Slack, GitHub, Git, Docker, atau pencarian web.
Arsitektur MCP

Mengapa menggunakan IBM Bob untuk integrasi MCP?

Pertama, apa itu IBM Bob? IBM Bob adalah lingkungan pengembangan  integrasi (IDE) dan asisten modernisasi yang didukung oleh AI generatif pengembangan integrasi. Think of Bob sebagai IDE dan pengembang pasangan pertama AI Anda: alat yang memahami maksud Anda, basis kode Anda, dan standar organisasi Anda.

Membangun server MCP Anda sendiri dari awal bisa memakan waktu, terutama untuk pengembang pemula. Sebagai gantinya, dalam tutorial ini, kita akan menelusuri cara memulai alur kerja ini dengan IBM menggunakan beberapa prompt bahasa alami sederhana.

Integrasi MCP memperluas fungsionalitas Bob dengan menghubungkan ke alat dan layanan eksternal, dapat dikonfigurasi secara global (berlaku di semua ruang kerja) atau level proyek (dapat dibagikan tim lewat .bob/mcp.json) . MCP mendukung dua jenis transportasi: input/output standar (STDIO) untuk lokal, server latensi rendah dan server-sent event (SSE) untuk server MCP jarak jauh yang dapat diakses melalui HTTP/HTTPS. Pengguna dapat mengonfigurasi server dengan file JSON di menu pengaturan Bob, menentukan perintah, variabel lingkungan, dan alat yang disetujui secara otomatis. Kedua jenis transportasi memungkinkan Anda untuk mengaktifkan atau menonaktifkan server, menyetujui secara otomatis alat tertentu, dan mengelola operasi melalui panel pengaturan MCP Bob.

Prasyarat

  • IBM Bob IDE diinstal. Daftar untuk akses awal ke IBM Bob.

Langkah-langkah

Mari kita mulai. Jika Anda lebih suka mengikuti tutorial ini di GitHub, lihat repositori kami .

Langkah 1. Siapkan diri dengan Bob

1. Silakan dan buka IBM Bob IDE yang Anda instal sebagai prasyarat dan biasakan diri dengan tata letak pendamping AI Coding baru Anda.

IBM Bob - Memulai IDE

2.  Untuk mengakses panel pengaturan MCP, klik 3 titik di sebelah ikon roda gigi di sudut kanan atas jendela obrolan. Kemudian, pilih server MCP dari menu dropdown.

IBM Bob - Marketplace Server MCP

Di sini, kita dapat mengaktifkan atau menonaktifkan MCP secara global atau per server dan mengelola alat (misalnya, persetujuan otomatis, penghapusan atau restart). Kami juga dapat menjelajahi server komunitas melalui Bob Marketplace atau membangun server kami sendiri dengan MCP SDK.

Jika Anda memilih untuk menginstal server dari pasar digital, Anda akan melihat bahwa konfigurasi dapat diatur pada dua tingkat: global (disimpan dimcp_settings.json dan diterapkan di semua ruang kerja) atau khusus proyek (disimpan di.Bob/mcp.json dalam root proyek Anda, sehingga mudah untuk berbagi dengan tim melalui kontrol versi).

Pengaturan tingkat proyek mengesampingkan pengaturan global, memberi Anda fleksibilitas untuk menyesuaikan perilaku MCP untuk berbagai contoh penggunaan. Untuk mengelola konfigurasi ini, Anda dapat mengedit file JSON langsung melalui menu pengaturan Bob, di mana Anda menentukan detail server seperti perintah, variabel lingkungan, dan alat yang disetujui secara otomatis. Dalam tutorial ini, kita akan menggunakan SDK.

3.   Pastikan pengaturan Aktifkan Pembuatan Server MCP aktif untuk membuat server MCP kustom dengan Bob.

4.  Jika Anda memiliki direktori pilihan untuk mengatur proyek Anda, Anda dapat membukanya sendiri di dalam IDE atau meminta Bob melakukannya untuk Anda di jendela obrolan.

Langkah 2. Aktifkan lingkungan virtual

  1. Mari keluar dari panel pengaturan dan kembali ke jendela obrolan.
  2. Anda mungkin telah memperhatikan ada mode yang berbeda untuk Bob seperti plan, code, advanced, ask, dan orchestrator. Untuk proyek ini, atur mode ke lanjutan.
IBM Bob - Mode Advanced

3. Ini adalah praktik umum untuk membuat lingkungan Python virtual untuk mengisolasi dependensi proyek, sehingga proyek yang berbeda tidak saling bertentangan. Untuk melakukannya, masukkan prompt: “Di direktori ini, aktifkan lingkungan virtual Python”.

IBM - Lingkungan virtual prompt

4. Anda akan melihat Bob berjalan melalui serangkaian perintah terminal. Perintah-perintah ini kemungkinan akan menyerupai:

python3 -m venv venv
source venv/bin/activate

Sebaiknya Anda menonaktifkan tombol memiliki persetujuan otomatis sehingga Anda dapat menyetujui atau menolak setiap perintah sebelum Bob menjalankannya secara real-time.

IBM Bob - Lingkungan virtual

Hebat. Bob berhasil membuat dan mengaktifkan lingkungan virtual baru di direktorivenv/ .

Langkah 3. Bob menghasilkan rencana

Dengan pengaturan lingkungan virtual kami, kami sekarang dapat melompat ke pembuatan server MCP. Saat meminta Bob untuk membuat kode, atau model AI atau asisten AI apa pun dalam hal ini, akan sangat membantu untuk menyertakan detail penting. Untuk melihat Bob beraksi, mari kita kirim prompt:

“Buat server MCP yang menyediakan akses hanya baca ke arXiv. Server harus:

  • Menyediakan tool pencarian untuk mencari makalah di arXiv
  • Batasi hasil pada metadata kertas dan abstrak (tanpa PDF)
  • Terapkan batasan kueri dan hasil yang wajar
  • Normalisasi respons menjadi skema yang rapi dan terstruktur”
IBM Bob - Pembuatan daftar tugas

Dengan satu prompt sederhana ini, Bob memiliki informasi yang cukup untuk memahami tugas dan merumuskan "daftar tugas" langkah-langkah untuk menyelesaikan tugas. Perhatikan bahwa daftar tersebut tidak hanya mencakup pembuatan server MCP tetapi juga konfigurasi dan pengujiannya. Rapi.

Catatan, kami menggunakan arXiv API dalam tutorial ini sebagai contoh sederhana yang tidak memerlukan kunci API atau autentikasi apa pun untuk memulai. Namun, ini adalah contoh dan Bob juga dibekali untuk menangani server yang lebih kompleks dengan izin yang diperlukan.

Langkah 4. Bob membangun server MCP khusus

  1. Bob sekarang siap untuk memulai serangkaian tugas untuk membangun server arXiv MCP. Untuk memulai, Bob membuat struktur proyek secara manual dengan menjalankan:
mkdir -p arxiv-server/src

Sebelum setiap perintah dieksekusi, kita dapat menyetujui atau menolak tindakan tersebut. Jika Anda melihat bahwa perintah dieksekusi secara otomatis, mungkin Anda telah mengaktifkan opsi persetujuan otomatis.

2.    Selanjutnya, Bob membuat filearxiv-server/package.json . File ini berfungsi sebagai hub konfigurasi untuk proyek Node.js. Lebih khusus lagi, file ini berisi metadata proyek (misalnya, nama, versi, deskripsi, dan sebagainya), dependensi, skrip dan pengaturan proyek. Mari kita lihat sekilas isi file package.json yang telah dihasilkan.

{
  "name": "arxiv-server",
  "version": "0.1.0",
  "description": "MCP server for read-only access to arXiv papers",
  "type": "module",
  "bin": {
    "arxiv-server": "./build/index.js"
  },
  "files": [
    "build"
  ],
  "scripts": {
    "build": "tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\"",
    "prepare": "npm run build",
    "watch": "tsc --watch"
  },
  "keywords": [
    "mcp",
    "arxiv",
    "research",
    "papers"
  ],
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.0.4",
    "axios": "^1.7.9",
    "zod": "^3.24.1"
  },
  "devDependencies": {
    "@types/node": "^22.10.5",
    "typescript": "^5.7.3"
  }
}
  1. Selanjutnya, Bob membuat arxiv-server/tsconfig.json untuk menentukan bagaimana kompiler harus mengubah kode TypeScript menjadi JavaScript.
{
  "compilerOptions": {
    "target": "ES2022",
    "module": "Node16",
    "moduleResolution": "Node16",
    "outDir": "./build",
    "rootDir": "./src",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "declaration": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "build"]
}

4.    Kemudian, implementasi server utama dengan fungsi pencarian arXiv disimpan di arxiv-server/src/index.ts . File ini:

  • Mengimpor pustaka yang diperlukan.
  • Mendefinisikan struktur respons API arXiv.
  • Mengonversi respons XML arXiv menjadi objek JavaScript terstruktur (karena API arXiv mengembalikan XML, bukan JSON).
  • Ekstrak:
    • Detail makalah (judul, penulis, abstrak, dan sebagainya).
    • Informasi paginasi (hasil total, indeks awal, item per halaman).
  • Mengambil data yang diurai dan memformatnya menjadi string yang dapat dibaca untuk ditampilkan di terminal.
  • Mendefinisikan fungsi pencarian yang mengambil kueri, mendukung filter opsional, mengambil data dari API arXiv, dan mengembalikan hasil yang diformat (atau kesalahan adalah sesuatu yang keliru).
  • Memulai server.
#!/usr/bin/env node
impor { McpServer } dari "@modelcontextprotocol/sdk/server/mcp.js";
impor { StdioServerTransport } dari "@modelcontextprotocol/sdk/server/stdio.js";
impor { z } from "zod";
impor axios dari 'axios';

// Tentukan tipe respons API arXiv
antarmuka ArxivEntry {
  id: string;
  title: string;
  summary: string;
  authors: Array<{ name: string }>;
  diterbitkan: string;
  diperbarui: string;
  kategori: string[];
  primary_category: string;
  tautan: Array<{ href: string; rel: string; type?: string }>;
}

antarmuka ArxivSearchResult {
  entries: ArxivEntry[];
  totalResults: number;
  startIndex: number;
  itemsPerPage: number;
}

// Buat server MCP 
const server = new McpServer({
  name: "arxiv-server",
  version: "0.1.0"
});

// Buat instance axios untuk arXiv API
const arxivApi = axios.create({
  baseURL: 'http://export.arxiv.org/api',
  timeout: 30000,
});

/**
 * Parse arXiv API XML response to JSON
 */
function parseArxivXML(xmlData: string): ArxivSearchResult {
  const entries: ArxivEntry[] = [];
  
  // Extract total results
  const totalResultsMatch = xmlData.match(/<opensearch:totalResults[^>]*>(\d+)<\/opensearch:totalResults>/);
  const totalResults = totalResultsMatch ? parseInt(totalResultsMatch[1]) : 0;
  
  const startIndexMatch = xmlData.match(/<opensearch:startIndex[^>]*>(\d+)<\/opensearch:startIndex>/);
  const startIndex = startIndexMatch ? parseInt(startIndexMatch[1]) : 0;
  
  const itemsPerPageMatch = xmlData.match(/<opensearch:itemsPerPage[^>]*>(\d+)<\/opensearch:itemsPerPage>/);
  const itemsPerPage = itemsPerPageMatch ? parseInt(itemsPerPageMatch[1]) : 0;
  
  // Extract entries
  const entryRegex = /<entry>([\s\S]*?)<\/entry>/g;
  let entryMatch;
  
  while ((entryMatch = entryRegex.exec(xmlData)) !== null) {
    const entryXml = entryMatch[1];
    
    // Extract ID
    const idMatch = entryXml.match(/<id>([^<]+)<\/id>/);
    const id = idMatch ? idMatch[1] : '';
    
    // Extract title
    const titleMatch = entryXml.match(/<title>([^<]+)<\/title>/);
    const title = titleMatch ? titleMatch[1].trim().replace(/\s+/g, ' ') : '';
    
    // Extract summary
    const summaryMatch = entryXml.match(/<summary>([^<]+)<\/summary>/);
    const summary = summaryMatch ? summaryMatch[1].trim().replace(/\s+/g, ' ') : '';
    
    // Extract authors
    const authors: Array<{ name: string }> = [];
    const authorRegex = /<author>\s*<name>([^<]+)<\/name>/g;
    let authorMatch;
    sementara ((authorMatch = authorRegex.exec(entryXml)) !== null) {
      authors.push({ name: authorMatch[1].trim() }); } // Ekstrak tanggal publikasi const publishingMatch = entryXml.match(/<published>([^<]+)<\/published>/);
    constpublished =publishMatch ? publishMatch[1] : ''; // Ekstrak tanggal yang diperbarui const updatedMatch = entryXml.match(/<updated>([^<]+)<\/updated>/);
    const updated = updatedMatch ? updatedMatch[1] : ''; // Ekstrak kategori const Categories: string[] = []; const categoryRegex = /<category[^>]+term="([^"]+)"/g; let categoryMatch; sementara ((categoryMatch = categoryRegex.exec(entryXml)) !== null) {
      categories.push(categoryMatch[1]);
    } const primary_category = kategori[0] || ''; // Ekstrak tautan const links: Array<{ href: string; rel: string; type?: string }> = []; const linkRegex = /<link[^>]+href="([^"]+)"[^>]+rel="([^"]+)"(?:[^>]+type="( [^"]+)")?/g; let linkMatch; while ((linkMatch = linkRegex.exec(entryXml)) !== null) {
      links.push({
        href: linkMatch[1],
        rel: linkMatch[2],
        type: linkMatch[3]
      }); } entries.push({
      id,
      title,
      summary,
      authors,
      published,
      updated,
      categories,
      primary_category,
      links
    });
  }
  
  return {
    entries,
    totalResults,
    startIndex,
    itemsPerPage
  };
}

/**
 * Format hasil pencarian untuk tampilan
 */
function formatSearchResults(result: ArxivSearchResult): string {
  let output = `Found ${result.totalResults} hasil (menampilkan ${result.entries.length})\n\n`;
  
  result.entries.forEach((entry, index) => {
    output += `${index + 1}. ${entry.title}\n`; output += ` ID: ${entry.id}\n`; output += ` Penulis: ${entry.authors.map(a => a.name).join(', ')}\n`; output += ` Published: ${entry.published}\n`; output += ` Categories: ${entry.categories.join(', ')}\n`; output += ` Abstrak: ${entry.summary.substring(0, 300)}${entry.summary.length > 300 ? '...' : ''}\n`; // Temukan tautan abstrak (bukan PDF) const abstractLink = entry.links.find(l => l.rel === 'alternate'); if (abstractLink) {
      output += `   URL: ${abstractLink.href}\n`; } output += '\n'; }); mengembalikan output; } // Tambahkan alat untuk mencari arXiv paper server.tool(
  "search_arxiv", {
    query: z.string().describe("Search query (supports arXiv query syntax)"),
    max_results: z.number().min(1).max(50).optional().describe("Maximum number of results to return (1-50, default: 10)"),
    start: z.number().min(0).optional().describe("Starting index for pagination (default: 0)"),
    sort_by: z.enum(["relevance", "lastUpdatedDate", "submittedDate"]).optional().describe("Sort order (default: relevance)"),
    sort_order: z.enum(["ascending", "descending"]).optional().describe("Sort direction (default: descending)")
  }, async ({ query, max_results = 10, start = 0, sort_by = "relevance", sort_order = "descending" }) => {
    try {
      // Enforce reasonable limits
      const limitedMaxResults = Math.min(max_results, 50);
      const limitedStart = Math.max(start, 0);
      
      // Build query parameters
      const params: Record<string, string | number> = {
        search_query: query,
        start: limitedStart,
        max_results: limitedMaxResults,
      }; if (sort_by) {
        params.sortBy = sort_by;
      } if (sort_order) {
        params.sortOrder = sort_order;
      } const response = menunggu arxivApi.get('/query', { params });
      
      // Parse XML response
      hasil const = parseArxivXML(response.data);
      
      // Format Hasil
      const formattedResults = formatSearchResults(result);
      
      return {
        content: [
          {
            type: "text",
            text: formattedResults,
          },
        ],
      };
    } catch (error) {
      if (axios.isAxiosError(error)) {
        return {
          content: [
            {
              type: "text",
              text: `arXiv API error: ${error.response?.data?.message ?? error.message}`,
            },
          ],
          isError: true,
        };
      }
      throw error;
    }
  }
);

// Mulai menerima pesan di stdin dan mengirim pesan di stdout
const transport = new StdioServerTransport();
menunggu server.connect(transport);
console.error('arXiv Server MCP berjalan di stdio');

// Dibuat dengan Bob

Pada tahap ini, jika server Anda memerlukan kunci API, Bob akan memintanya.

5. Sebagai langkah selanjutnya, Bob menginstal dependensi dalam direktori arxiv-server dengan menjalankan perintah berikut.

cd arxiv-server && npm install
  1. Bob sekarang siap untuk menambahkan konfigurasi server MCP ke file pengaturan. Server MCP global dikonfigurasi di mcp_settings.json dan server tingkat proyek dikonfigurasi di .Bob/mcp.json. Perbedaan antara kedua jenis ini adalah bahwa server global diterapkan di seluruh ruang kerja, sedangkan konfigurasi server tingkat proyek disimpan di root proyek Anda. Proyek kami disimpan sebagai server MCP global, tetapi pilihlah opsi yang paling sesuai dengan kebutuhan Anda.
{ 
	"mcpServers": {}
	"mcpServers": { 
		"arxiv": { 
			"command": "node", 
			"args": [ "/here/is/the/path/to/arxiv-server/build/index.js" 
				], 
			"disabled": false, 
			"alwaysAllow": [], 
			"disabledTools": [] 
		} 
	}
}

Informasi ini melengkapi serangkaian langkah yang diambil Bob untuk mengatur server MCP.

Langkah 5. Menguji server MCP

IBM Bob - Server uji

Untuk menyelesaikan serangkaian tugas “daftar tugas”, Bob menguji server MCP. Seperti yang terlihat pada tangkapan layar sebelumnya, Bob menanyakan search_arxiv alat di server MCP untuk menemukan 3 makalah komputasi kuantum yang diurutkan berdasarkan relevansi.

Setelah eksekusi berhasil, yang dapat Anda lihat dengan mengklik wortel ke bawah untuk memperluas jendela, Bob menjalankan tes lain. Kali ini, kuerinya adalah untuk 2 makalah machine learning yang diurutkan berdasarkan tanggal pengiriman yang menurun. Bahkan dengan penggunaan parameter yang berbeda, panggilan alat MCP ini juga berhasil dijalankan.

IBM Bob - Tugas selesai

Mengingat tes yang berhasil, Bob sekarang telah menyelesaikan semua subtugas.

Bob sudah menguji server MCP untuk kita. Namun, mari kita coba beberapa pertanyaan kita sendiri di jendela obrolan untuk melihat apakah Bob dapat mengekstrapolasi istilah pencarian yang benar dan parameter yang diperlukan.

Tanyakan Bob, “Apa makalah terbaru tentang pelacakan agen LLM?

IBM Bob - Kueri penelusuran agen LLM

Dengan sendirinya, Bob mengekstrak kueri yang benar dari prompt kami dan menambahkan beberapa kata kunci tambahan untuk meningkatkan pencarian. Bob juga menetapkan jumlah maksimum hasil menjadi 10 dan mengurutkan makalah berdasarkan relevansi. Bagus.

Mari kita coba satu kueri lagi.

IBM Bob - Kueri Bob dengan server MCP

Menariknya, Bob secara otomatis mengubah permintaan kueri setelah melihat hasil yang tidak diinginkan. Bob tidak secara membabi buta menjalankan panggilan alat melainkan, berkolaborasi dengan pengguna sebagai agen yang membantu. Setelah dua iterasi ini, Bob mengembalikan beberapa makalah yang selaras dengan tugas awal kami.

Langkah 6. Dokumentasikan server

Banyak server MCP sumber terbuka juga menyertakan dokumen bagi orang lain untuk memulai dengan mudah. Mari kita tempelkan prompt ini ke jendela obrolan:

“Di direktori ini, buat file README.md untuk mendokumentasikan server MCP ini. Sertakan petunjuk pengaturan dan penggunaan.”

IBM Bob - Baca saya tugas

Dengan satu prompt sederhana, Bob menciptakan dokumenREADME.md yang komprehensif yang mencakup semua yang diperlukan untuk memahami, menginstal, mengonfigurasi, memecahkan masalah dan menggunakan server arXiv MCP.

Langkah 7. (Opsional) Buat agen Watsonx Orchestrate

Mungkin Anda tertarik untuk membangun agen AI khusus riset dengan watsonx Orchestrate™ yang dapat mengakses server MCP ini? Bob dapat membuat agen hanya dengan satu prompt sederhana. Pertama, instal server watsonx Orchestrate ADK yang dibangun sebelumnya dari pasar digital yang ditemukan di panel pengaturan MCP yang kami jelajahi pada langkah 1. Kemudian, kirimkan perintah ini:

"Buat agen watsonx Orchestrate yang menggunakan server MCP arxiv ini."

Jika Anda memiliki layanan watsonx Orchestrate yang berjalan secara lokal, Bob akan menjalankan perintah yang diperlukan untuk Anda. Jika Anda lebih suka menjalankan perintah sendiri nanti, Bob akan menulis skrip dan mendokumentasikan perintah apa pun yang diperlukan.

IBM Bob - Membuat agen WXO

Mari kita lihat setiap file untuk lebih memahami apa yang dihasilkan Bob. Berikut adalah file toolkit-config.yaml . File ini bertindak sebagai file definisi untuk mengonfigurasi dan mengintegrasikan alat eksternal atau server MCP ke lingkungan watsonx Orchestrate Anda. Kita dapat melihat bahwa server MCP kita diidentifikasi dan dijelaskan dengan benar.

Jenis: mcp
nama: arxiv-toolkit
deskripsi: Toolkit untuk mencari riset arXiv. Menyediakan akses ke metadata kertas, abstrak, dan informasi publikasi dari database arXiv.
package_root: /lokal/jalur/ke/arxiv-server
bahasa: node
perintah: node /lokal/jalur/ke/arxiv-server/arxiv-server/build/index.js
alat:
- "*"
# Dibuat dengan Bob

Selanjutnya, mari kita buka file riset-assistant-agent.yaml.

nama: asisten riset
jenis: asli
deskripsi: Asisten riset AI yang membantu menemukan dan meringkas makalah akademisi dari arXiv. Mengkhususkan diri dalam mencari literatur ilmiah, menjelaskan temuan riset, dan memberikan kutipan.
judul: Asisten Peneliti
instruksi: |
Anda adalah asisten peneliti ahli yang mengkhususkan diri dalam pencarian literatur akademik di arXiv.
## Kemampuan Anda
- Mencari makalah di arXiv mengenai topik ilmiah apa pun
- Merangkum temuan penelitian dari abstrak dalam bahasa yang mudah dipahami
- Mengidentifikasi penulis utama dan tren penelitian
- Merekomendasikan makalah dan topik terkait
- Menyertakan kutipan yang tepat beserta ID arXiv dan URL
## Saat Menanggapi Pengguna
1. Selalu cantumkan ID arXiv dan URL langsung ke makalah
2. Ringkas abstrak dalam bahasa yang mudah dipahami
3. Soroti kontribusi dan temuan utama
4. Sarankan pencarian lanjutan jika relevan
5. Jelaskan secara ringkas namun informatif
## Menggunakan Alat search_arxiv
Parameter yang tersedia:
- Kueri (wajib): Kueri pencarian menggunakan sintaks arXiv
- max_results (opsional): 1-50 makalah, default 10
- start (opsional): Indeks awal untuk paginasi, default 0
- sort_by (opsional): “relevance”, “submittedDate”, atau "lastUpdatedDate"
- sort_order (opsional): “ascending” atau “descending”
## Sintaks Pencarian Lanjutan
Anda dapat menggunakan operator berikut dalam kueri:
- ti:keyword - Mencari di judul
- au:author - Mencari berdasarkan nama penulis
- abs:keyword - Mencari di abstrak
- cat:category - Menyaring berdasarkan kategori (misalnya, cs.AI, quant-ph, math.CO)
- AND, OR, ANDNOT - Operator Boolean
Contoh:
- “ti:transformer AND cat:cs.LG” - Makalah tentang Transformer dalam machine learning
- “au:Hinton” - Makalah oleh Geoffrey Hinton
- “quantum computing AND cat:quant-ph” - Komputasi kuantum dalam fisika kuantum
## Kategori Umum
- cs.AI - Kecerdasan Buatan
- cs.LG - Machine Learning
- cs.CL - Komputasi dan Bahasa
- cs.CV - Computer Vision
- quant-ph - Fisika Kuantum
- math.CO - Kombinatorika
- stat.ML - Machine learning (Statistik)## Format Tanggapan
Saat menyajikan makalah, gunakan format berikut:
**“Judul Makalah”**
- Penulis: [Nama penulis]
- Diterbitkan: [Tanggal]
- Kategori: [Kategori]
- Ringkasan: [Ringkasan singkat abstrak]
- [Lihat makalah](URL arXiv)
## Penanganan Kasus Khusus
- Jika tidak ditemukan hasil: Sarankan istilah pencarian alternatif atau kueri yang lebih luas
- Jika hasil terlalu banyak: Sarankan untuk mempersempit pencarian dengan kategori atau filter tanggal
- Jika pengguna meminta PDF: Jelaskan bahwa Anda hanya menyediakan metadata, tetapi sertakan URL tempat mereka dapat mengakses makalah tersebut
- Jika kueri tidak jelas: Ajukan pertanyaan klarifikasi mengenai bidang penelitian atau minat spesifik

tools
:- search_arxiv

config:
hidden: false
enable_cot: true

tags:
- penelitian
- akademik
- makalah
- arxiv
- pencarian-literatur

# Dibuat dengan Bob

File YAML ini mengonfigurasi asisten riset kami, agen AI khusus yang menyederhanakan penelitian akademis dengan mencari arXiv, merangkum makalah, dan memberikan kutipan dalam format terstruktur. Termasuk di dalamnya adalah petunjuk terperinci yang memandu perilaku agen, mulai dari sintaks kueri dan penggunaan alat hingga pemformatan respons dan penanganan kasus-kasus khusus. Semua informasi ini dijelaskan selagi memanfaatkan alat search_arxiv untuk mengambil dan menyajikan literatur ilmiah secara efisien. Terakhir, file setup-instructions.md mencakup semua informasi yang diperlukan untuk mengintegrasikan server arXiv MCP dengan watsonx Orchestrate. File ini mencakup perintah untuk dijalankan di terminal, tes, kiat pemecahan masalah, skrip Python alternatif dan banyak lagi.

Kesimpulan

Dalam tutorial ini, kami menggunakan IBM Bob, IDE yang mengutamakan AI sekaligus asisten pair programming, untuk menyederhanakan integrasi MCP dalam riset akademis. Anda secara efisien membangun server MCP yang dapat diskalakan yang mampu mencari dan mengambil kertas dari repositori arXiv.org. Sekarang, solusi Anda siap produksi, apakah Anda memilih untuk sumber terbuka untuk komunitas riset atau menerapkan dalam aplikasi perusahaan Anda untuk meningkatkan penemuan pengetahuan.

Keunggulan utama IBM Bob terletak pada kemampuannya mengubah tugas pengembangan yang kompleks menjadi alur kerja berbasis prompt yang intuitif. Hanya dengan beberapa input strategis, Bob mempercepat pembuatan prototipe, mengurangi kode boilerplate dan bahkan menyarankan pengoptimalan, memberdayakan Anda untuk fokus pada inovasi daripada implementasi.

Saat Anda terus mengeksplorasi kemampuannya, pertimbangkan bagaimana Bob dapat menyempurnakan server MCP Anda lebih lanjut. Beberapa manfaat yang dapat kami tambahkan mencakup penyaringan lanjutan, pembaruan secara real-time, dan integrasi dengan basis data akademis lain, seperti PubMed atau IEEE Xplore. Semua kemungkinan ini, dan banyak lagi lainnya, dapat dilakukan dengan beberapa prompt sederhana menggunakan IBM Bob.

Siap ambil langkah selanjutnya? Bereksperimenlah dengan menyesuaikan server MCP Anda atau pelajari lebih dalam fitur Bob untuk membuka lebih banyak potensi otomatisasi. Selamat melakukan pengodean!

Penulis

Anna Gutowska

AI Engineer, Developer Advocate

IBM

Solusi terkait
Agen AI untuk bisnis

Bangun, terapkan, dan kelola asisten dan agen AI yang kuat yang mengotomatiskan alur kerja dan proses dengan AI generatif.

    Menjelajahi watsonx Orchestrate
    Solusi agen AI IBM

    Bangun masa depan bisnis Anda dengan solusi AI yang dapat Anda percaya.

    Jelajahi solusi agen AI
    Layanan AI IBM Consulting

    Layanan IBM Consulting AI membantu merancang ulang cara kerja bisnis dengan AI untuk transformasi.

    Jelajahi layanan kecerdasan buatan
    Ambil langkah selanjutnya

    Baik Anda memilih untuk menyesuaikan aplikasi dan keterampilan yang dibangun sebelumnya atau membangun dan menerapkan layanan agen khusus menggunakan studio AI, platform IBM watsonx siap membantu Anda.

    1. Menjelajahi watsonx Orchestrate
    2. Jelajahi watsonx.ai