AstroWay/api v2.190.0 · id
semua sistem normal

Output MCP Ter-tipe: Mengapa 600+ Alat Memiliki outputSchema

Sebagian besar server MCP mengembalikan JSON yang tidak ter-tipe ke agen - model harus menebak bentuk respons. Kami menerbitkan outputSchema yang ketat untuk 600+ alat. Kami menganalisis bagaimana ini bekerja, bug apa yang terungkap pada klien mode-strict, dan bagaimana kami memperbaikinya melalui skema terbuka.

Ketika alat mendeklarasikan skema keluaran, klien mengetahui bentuk respons sebelum dipanggil. Agen tidak menebak - ia melihat bahwa chart.houses.ascendant ada dan memiliki tipe ‘angka, bujur ekliptik dalam derajat’. Lebih sedikit halusinasi tentang struktur, rantai panggilan yang lebih akurat, kemampuan untuk memvalidasi respons di sisi klien.

Katalog berkembang secara bertahap: 285 alat di awal, kemudian 624, sekarang lebih dari 630 - dan keluaran yang terketik hampir mencakup seluruhnya (lebih dari 600 dari 630+). Skema tidak ditulis secara manual: generator membaca /v1/openapi.json yang live saat build, sehingga drift antara REST dan MCP tidak mungkin secara desain.

Bug yang terungkap melalui pengetikan ketat

Section titled “Bug yang terungkap melalui pengetikan ketat”

Ketekatan memiliki harganya. Ketika alat mendeklarasikan skema tertutup (tidak ada bidang di luar yang terdaftar), dan respons berisi metadata tambahan, klien mode strict menolaknya. Pada keluarga alat chart, kami tepatnya menangkap ini:

McpError: MCP error -32602: Structured content does not match
the tool's output schema: data must NOT have additional properties

Alasannya: skema Zod yang dihasilkan dalam bentuk tertutup, tetapi respons backend sebenarnya berisi beberapa bidang metadata layanan yang tidak dideklarasikan dalam skema. Klien memvalidasi structuredContent terhadap skema dalam mode strict dan melempar -32602.

Nuansa menarik: Claude Desktop dan Cursor tidak menunjukkan bug - mereka dalam mode longgar dan melewatkan bidang tambahan. Itulah klien SDK mode strict yang jatuh, yang memvalidasi secara ketat. Artinya, masalahnya tidak terlihat di klien paling populer dan hanya muncul di integrasi kustom di atas MCP SDK.

Perbaikan: skema terbuka menggantikan skema tertutup

Section titled “Perbaikan: skema terbuka menggantikan skema tertutup”

Solusinya bukan membuang pengetikan, tetapi membuat skema terbuka. Di generator alat, skema ZodObject keluaran dikonversi ke bentuk passthrough: bidang yang dideklarasikan tetap wajib dan terketik, sementara bidang layanan tambahan lolos validasi tanpa memutuskan panggilan.

Untuk katalog yang dihosting, fallback terpisah diterapkan - menghapus outputSchema dari pendaftaran untuk alat-alat di mana validasi sudah rusak, sehingga klien strict tidak jatuh sementara skema belum sepenuhnya terbuka. Kompromisis sadar: lebih baik panggilan yang benar tanpa validasi klien daripada crash keras.

Pelajarannya sederhana: keluaran MCP yang terketik berguna, tetapi skema respons harus terbuka untuk bidang tambahan. API berevolusi, metadata muncul, dan skema tertutup mengubah setiap penambahan tersebut menjadi perubahan yang merusak untuk klien strict.

Katalog yang terketik tersedia melalui kedua cara:

// hosted, без установки
{
"mcpServers": {
"astroway": {
"url": "https://mcp.astroway.info/mcp",
"headers": { "Authorization": "Bearer aw_live_..." }
}
}
}

Atau paket stdio npx -y @astroway/mcp dengan kunci di ASTROWAY_API_KEY. Keduanya menyajikan katalog yang sama terketik; panduan lengkap klien ada di /agent-setup/.

MakSeong · AstroWay

Aku membuat AstroWay API: membungkus Swiss Ephemeris ke dalam REST murni dan menulis tentang detail membosankan yang sebenarnya penting.

// bangun di atas ini

Swiss Ephemeris yang sama dengan Solar Fire - dalam 4 baris kode.

Kunci gratis tanpa kartu. 5.000 panggilan per bulan sebelum pembayaran pertama.

Lebih dari blog semua tulisan →

Engineering 2026-07-15

Tiga resmi SDK: TypeScript, Python, PHP alih-alih curl mentah

HTTP mentah bekerja, tetapi klien yang terjenis menghemat jam: otomatis melengkapi jalur, jenis permintaan dan respons, retry bawaan untuk 408/409/429/5xx dan hierarki kesalahan Stainless-style. Kami jelaskan tiga resmi SDK - @astroway/sdk (npm), astroway (PyPI), astroway/sdk (Packagist) - dan bagaimana mereka dihasilkan dari satu kontrak OpenAPI.

Industry 2026-06-05

Free Astrology API: Which One Has the Best Free Tier in 2026?

A side-by-side of free tiers across the major astrology APIs - credits, request caps, card requirements - and how much you can actually build for free.

Engineering 2026-06-05

Horoscope API Tutorial: Build a Daily Horoscope Feature

Add daily, weekly and monthly horoscopes to your app via API - sign-based text vs transit-based personalization - with TypeScript and Python code.