يمكنك استخدام Claude Agent SDK مع Narwhal للسؤال عن الإجازات الرسمية ومواعيد الإصدار والبيانات الاقتصادية والسلع وأسعار الصرف وأسواق التنبؤ. اربط الوكيل بخادم Narwhal MCP باستخدام مفتاح API الخاص بك، ثم اطرح عليه سؤالًا بلغة عادية ليختار الأداة المناسبة.
ما الذي ستعدّه
يتيح لك Claude Agent SDK تمرير سؤال إلى وكيل عبر Python. ستحصل على سكربت يتصل بخادم Narwhal MCP ويطرح سؤالًا لكل مجال من مجالات البيانات. يحتفظ القاموس PROMPTS بالأسئلة، بينما يحتفظ ClaudeAgentOptions باتصال الخادم وأذونات الأدوات. يطبع السكربت اسم كل مجال والرسائل التي أعادها الوكيل.
اضبط مفتاح API الخاص بك
- أنشئ مفتاح Narwhal مجانيًا أنشئ مفتاحك من narwhalapi.com/signup. يستخدم Narwhal حسابًا واحدًا ومفتاح API واحدًا عبر واجهات البيانات التابعة له، لذا يغطي المفتاح نفسه كل مجالات البيانات في هذا السكربت.
- احفظ المفتاح في بيئة التشغيل ضع المفتاح في متغير بيئة اسمه
NARWHAL_API_KEY. يقرأ سكربت Python هذا المتغير لتكوين ترويسة Bearer، وتشير إليه إعدادات Claude Code بالاسم. اجعل المتغير متاحًا في البيئة التي تشغّل الوكيل. استخدم مفتاحك قيمةً للمتغير، مع إبقاء البادئةBearerفي إعداد الترويسة.export NARWHAL_API_KEY="YOUR_KEY"
اسأل عبر Claude Code
يمكن لمستخدمي Claude Code إضافة Narwhal كخادم MCP عبر إعداد JSON. هذه هي الطريقة لطرح الأسئلة دون كتابة سكربت Python. عنوان الخادم هو نفسه عنوان MCP الذي يستخدمه SDK، ونوع الاتصال هو http. استخدم إعداد الخادم مع Claude Code، وإعداد ClaudeAgentOptions مع Python SDK.
- أضف إعداد خادم MCP أضف إعداد JSON مع
narwhalاسمًا للخادم. أبقِ مرجع متغير البيئة في ترويسة Authorization ليقرأ الإعداد مفتاحك منNARWHAL_API_KEY.{ "mcpServers": { "narwhal": { "type": "http", "url": "https://api.narwhalapi.com/mcp", "headers": { "Authorization": "Bearer ${NARWHAL_API_KEY}" } } } } - اطرح سؤالًا بلغة عادية اسأل: «هل 25 ديسمبر 2026 إجازة رسمية في الولايات المتحدة؟» يختار الوكيل الأداة من السؤال. وتتضمن أمثلة المجالات أيضًا أسئلة عن مواعيد الإصدار والبيانات الاقتصادية والسلع وأسعار الصرف وأسواق التنبؤ.
اسحب البيانات بالكود
ثبّت claude-agent-sdk، ثم شغّل سكربت Python مع إتاحة مفتاحك في بيئته. يوفّر إعداد mcp_servers عنوان MCP وترويسة Authorization. ويتيح المحرف البديل في allowed_tools للوكيل استخدام كل أدوات Narwhal. يتلقى كل استدعاء لـ query سؤالًا والخيارات المشتركة. يستورد الكود asyncio وos إلى جانب ClaudeAgentOptions وquery من SDK.
pip install claude-agent-sdkimport asyncio
import os
from claude_agent_sdk import ClaudeAgentOptions, query
options = ClaudeAgentOptions(
mcp_servers={
"narwhal": {
"type": "http",
"url": "https://api.narwhalapi.com/mcp",
"headers": {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"},
}
},
allowed_tools=["mcp__narwhal__*"],
)
PROMPTS = {
"holidays": "Is 25 December 2026 a public holiday in the United States?",
"release dates": "When is the US CPI release in November 2026?",
"economics": "What is the latest US CPI index?",
"commodities": "What is the Brent spot price in dollars a barrel?",
"FX": "What are the USD/EUR and USD/IDR rates?",
"predictions": "What are the Fed rate odds for its next meeting?",
}
async def main():
for area, question in PROMPTS.items():
print("##", area)
async for message in query(prompt=question, options=options):
print(message)
asyncio.run(main())أبقِ عناصر PROMPTS أسئلةً بلغة طبيعية. فهي تصف المعلومات التي تريدها، ويختار الوكيل الأداة. تُرسل الحلقة كل سؤال على حدة وتطبع رسائل ذلك المجال. وللسؤال عن مجال واحد، استخدم سؤاله مع options نفسها كما في الأمثلة التالية. داخل main تطبع async for كل رسالة من query قبل أن تنتقل الحلقة الخارجية إلى مجال آخر. تعيد الأمثلة الفردية استخدام الاستيرادات وoptions من السكربت الكامل، مع قاموس PROMPTS أصغر يحتوي على سؤال المجال.
شغّله وفق جدول
شغّل السكربت من cron أو من منفّذ مهام، مع إتاحة NARWHAL_API_KEY للسكربت المجدول. يخصم كل استدعاء أداة ناجح استدعاءً واحدًا من رصيد المفتاح. يمر السكربت على أسئلة PROMPTS في حلقة، لذا يسأل كل تشغيل مجدول عن كل مجال في ذلك القاموس. ضع في القاموس الأسئلة التي تريد أن يطرحها الوكيل المجدول.
الإجازات الرسمية مع Claude Agent SDK
اسأل هل تاريخ معيّن إجازة رسمية. يذكر هذا السؤال التاريخ والبلد معًا. المقابل في REST هو https://api.narwhalapi.com/v1/calendars/holidays/USA/2026، واقرأ منه holidays؛ ولكل عنصر date وname. يستخدم المثال اتصال MCP المعرَّف أصلًا في options.
PROMPTS = {
"holidays": "Is 25 December 2026 a public holiday in the United States?",
}
async def main():
async for message in query(prompt=PROMPTS["holidays"], options=options):
print(message) # REST counterpart field: holidays
asyncio.run(main())مواعيد الإصدار مع Claude Agent SDK
اسأل عن موعد إصدار معيّن بذكر اسم الإصدار والشهر. يوفّر التقويم الاقتصادي مواعيد الإصدار. المقابل في REST هو https://api.narwhalapi.com/v1/economics/calendar?countries=USA&start_date=2026-11-01&end_date=2026-11-30&limit=100. اقرأ releases، وتحتوي عناصره على at وperiod وtopic وstatus. استخدم سؤال البيانات الاقتصادية لمعرفة قيمة مؤشر CPI.
PROMPTS = {
"release dates": "When is the US CPI release in November 2026?",
}
async def main():
async for message in query(prompt=PROMPTS["release dates"], options=options):
print(message) # REST counterpart field: releases
asyncio.run(main())البيانات الاقتصادية مع Claude Agent SDK
اسأل عن مؤشر أسعار المستهلك الأمريكي (CPI) عبر أدوات البيانات الاقتصادية. تشمل البيانات الاقتصادية في Narwhal أيضًا التضخم والناتج المحلي الإجمالي والعوائد. المقابل في REST لمؤشر CPI هو https://api.narwhalapi.com/v1/economics/USA/cpi/observations?start=2025-09، حيث يحتوي observations على عناصر فيها period وvalue. يطلب الأمر من الوكيل المؤشر، بينما يحدد عنوان REST فترة بداية الملاحظات.
PROMPTS = {
"economics": "What is the latest US CPI index?",
}
async def main():
async for message in query(prompt=PROMPTS["economics"], options=options):
print(message) # REST counterpart field: observations
asyncio.run(main())السلع مع Claude Agent SDK
اذكر اسم السلعة ووحدتها في سؤالك كما يفعل أمر Brent. المقابل في REST هو https://api.narwhalapi.com/v1/commodities/spot/BRENT/USD، واقرأ حقل price منه. يستخدم Narwhal رموز الأسعار الفورية، ومنها XAU وXAG وXPT وXPD وXCU وBRENT وWTI. يحتفظ هذا المثال بسؤال Brent من السكربت الكامل.
PROMPTS = {
"commodities": "What is the Brent spot price in dollars a barrel?",
}
async def main():
async for message in query(prompt=PROMPTS["commodities"], options=options):
print(message) # REST counterpart field: price
asyncio.run(main())أسعار الصرف مع Claude Agent SDK
اذكر أزواج العملات التي تحتاجها في السؤال نفسه. يطلب هذا الأمر USD/EUR وUSD/IDR. المقابل في REST هو https://api.narwhalapi.com/v1/fx/rates/USD?currencies=EUR,IDR، ويعيد rates وفي كل عنصر currency وrate. يحدد الأمر والعنوان العملات كليهما، ويختار وكيل MCP الأداة وفق الأمر.
PROMPTS = {
"FX": "What are the USD/EUR and USD/IDR rates?",
}
async def main():
async for message in query(prompt=PROMPTS["FX"], options=options):
print(message) # REST counterpart field: rates
asyncio.run(main())أسواق التنبؤ مع Claude Agent SDK
اسأل عن احتمالات أسعار الفائدة لدى الاحتياطي الفيدرالي عبر أدوات أسواق التنبؤ. المقابل في REST هو https://api.narwhalapi.com/v1/predictions/policy-paths/federal-reserve. اقرأ meetings، ولكل عنصر resolves_at وp_cut وp_hold وp_hike. تصف هذه الحقول وقت الحسم واحتمالات الخفض والتثبيت والرفع. يطرح المثال سؤال سوق التنبؤ نفسه الموجود في السكربت الكامل.
PROMPTS = {
"predictions": "What are the Fed rate odds for its next meeting?",
}
async def main():
async for message in query(prompt=PROMPTS["predictions"], options=options):
print(message) # REST counterpart field: meetings
asyncio.run(main())كيف أقيّد ما يمكن للوكيل استدعاؤه؟
استبدل المحرف البديل في allowed_tools بأسماء الأدوات التي تريد السماح بها. بالنسبة إلى CPI استخدم mcp__narwhal__economics_get_cpi. اضبط allowed_tools=["mcp__narwhal__economics_get_cpi"] في ClaudeAgentOptions لتسمية هذه الأداة صراحةً. يستخدم السكربت الكامل mcp__narwhal__* لأن أسئلته تشمل كل مجالات البيانات.
هل أحتاج إلى وصول خاص بي إلى Claude؟
نعم. يحتاج الوكيل إلى وصولك الخاص إلى Claude إضافةً إلى مفتاح Narwhal API. يوثّق مفتاح Narwhal الطلبات المرسلة إلى Narwhal، ويشترك REST وMCP في هذا المفتاح. في طلبات REST إلى عناوين المجالات أرسل Authorization: Bearer YOUR_KEY؛ ويرسل إعداد SDK الترويسة نفسها إلى عنوان MCP.
نُشر في .