sk75's picture
Upload 8 files
1b38924 verified
Raw
History Blame Contribute Delete
2.45 kB
import tools
import database
from mcp.server.fastmcp import FastMCP
HAS_MCP = True
if HAS_MCP:
mcp_app = FastMCP("Academic-Research-Assistant-MCP")
@mcp_app.tool()
def search_arxiv(query: str, max_results: int = 5) -> str:
"""ArXiv platformundan verilen akademik konu veya anahtar kelimelere göre makaleleri arar."""
res = tools.search_arxiv_papers(query=query, max_results=max_results)
return str(res)
@mcp_app.tool()
def search_openalex(query: str, limit: int = 5) -> str:
"""Semantic Scholar platformundan atıf sayıları (citations) ile makale arar."""
res = tools.search_openalex(query=query, limit=limit)
return str(res)
@mcp_app.tool()
def save_paper(paper_id: str, title: str, authors: str = "", summary: str = "", url: str = "", published_year: str = "", tags: str = "genel") -> str:
"""Makaleyi SQLite kişisel kütüphane veritabanına kaydeder."""
res = database.save_paper(paper_id=paper_id, title=title, authors=authors, summary=summary, url=url, published_year=published_year, tags=tags)
return str(res)
@mcp_app.tool()
def get_library(status_filter: str = "hepsi", query: str = "") -> str:
"""SQLite veritabanındaki kayıtlı makale kütüphanesini ve okuma durumlarını getirir."""
res = database.get_saved_papers(status_filter=status_filter, query=query)
return str(res)
@mcp_app.tool()
def update_paper_status(paper_id: str, status: str = "", notes: str = "", tags: str = "") -> str:
"""Kayıtlı makalenin okuma durumunu ('unread', 'reading', 'completed') veya notlarını günceller."""
res = database.update_paper_status_or_note(paper_id=paper_id, status=status, notes=notes, tags=tags)
return str(res)
@mcp_app.tool()
def delete_paper(paper_id: str) -> str:
"""Kütüphaneden bir makaleyi siler."""
res = database.delete_paper(paper_id=paper_id)
return str(res)
@mcp_app.tool()
def clear_library() -> str:
"""Kütüphanedeki TÜM makaleleri veritabanından tamamen siler ve temizler."""
res = database.clear_library()
return str(res)
def run_mcp():
mcp_app.run()
else:
def run_mcp():
print("⚠️ MCP kütüphanesi yüklenmedi. Lütfen 'pip install mcp' komutunu çalıştırın.")
if __name__ == "__main__":
database.init_db()
run_mcp()