databook (sarapis/databook) is an MCP server listed on the M8ven Trust Index. It scores 74 out of 100, grade C. It declares 41 tools. No publisher has claimed this listing.
Databook — an open data platform for New York City government: agencies, people, jobs, procurement, budgets, and City Record notices, unified and cross-linked. A nonprofit project of WeGov.NYC.
Warning. Serious findings were identified. Review the full report before connecting. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
sarapis
Source: github_code
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
get_database_overviewGet a summary of all available data in the Databook database. Returns counts for organizations, titles, notices, capital projects, and more. Use this to understand what data is available before diving into specifics.
search_organizationsSearch NYC organizations (agencies, boards, offices) by name. Args: query_text: Organization name to search for (partial match supported) limit: Maximum number of results (default 20, max 50) Returns: List of matching organizations with basic info
get_organization_profileGet detailed profile for a specific NYC organization. Args: org_id: The organization ID (from search_organizations) Returns: Complete organization profile with stats
get_organization_noticesGet recent City Record notices for an organization. Args: org_id: The organization ID limit: Maximum notices to return (default 10, max 50) Returns: List of recent notices for the organization
search_civil_titlesSearch NYC civil service job titles. Args: query_text: Title name or code to search (partial match) limit: Maximum results (default 20, max 50) Returns: List of matching civil service titles
get_title_positionsGet employees currently holding a specific civil service title. Args: job_code: The job code (e.g., "10026" from search_civil_titles) limit: Maximum results (default 20, max 50) Returns: List of employees with this title
search_noticesSearch City Record Online (CROL) notices. Args: query_text: Search in title or description (optional) section: Filter by section (e.g., "Contract Awards", "Public Hearings") limit: Maximum results (default 20, max 50) Returns: List of matching notices
get_notice_statsGet City Record notice statistics for the last 30 days. Returns summary by section type to understand recent government activity.
get_recent_eventsGet upcoming public events and hearings from the City Record. Args: limit: Maximum events to return (default 10, max 30) Returns: List of upcoming events with dates and details
search_capital_projectsSearch NYC capital projects by name or ID. Args: query_text: Project name or ID to search limit: Maximum results (default 20, max 50) Returns: List of matching capital projects
get_project_detailsGet detailed information for a specific capital project. Args: project_id: The project ID (e.g., "HW1234") Returns: Full project details with budget and schedule
get_agency_projectsGet capital projects for a specific agency. Args: agency: Agency name (partial match, e.g., "Parks", "DOT") limit: Maximum results (default 15, max 50) Returns: List of capital projects for the agency
get_project_milestonesGet largest capital projects with any milestones (start, end, or intermediate) within a date range. Queries the capitalprojectsmilestones table for actual milestone dates and joins with project details for budget info. Returns the largest projects by current budget. Args: days_back: Days to look bac…
search_peopleSearch NYC government employees by name. Args: query_text: Name to search (first or last name) limit: Maximum results (default 20, max 50) Returns: List of matching employees with title and agency
search_vendorsSearch registered NYC vendors by name. Args: query_text: Vendor name to search (partial match) limit: Maximum results (default 20, max 50) Returns: List of matching vendors with basic info
get_vendor_profileGet detailed profile for a specific vendor. Args: vendor_id: The vendor's passport_supplier_id (from search_vendors) Returns: Complete vendor profile with contract statistics
search_contractsSearch NYC procurement contracts with various filters. Args: query_text: Search in contract title (optional) vendor: Filter by vendor name (partial match) agency: Filter by agency name (partial match) status: Filter by status (e.g., "Active", "Registered") limit: Maximum results (default 20, max 50)…
get_contract_detailsGet detailed information for a specific contract. Args: contract_id: The contract ID (e.g., "CT1-100-2024") Returns: Full contract details
get_contract_statsGet aggregated contract statistics for analysis. Useful for understanding overall procurement activity, budget allocation, and contract distribution across agencies. Args: agency: Filter by agency name (optional) fiscal_year: Filter by fiscal year (optional) Returns: Summary statistics including cou…
search_solicitationsSearch NYC procurement solicitations (RFPs, bids). Args: query_text: Search in procurement name (optional) agency: Filter by agency name (partial match) status: Filter by status (e.g., "Open", "Closed") limit: Maximum results (default 20, max 50) Returns: List of matching solicitations
get_solicitation_detailsGet detailed information for a specific solicitation. Args: epin: The solicitation EPIN Returns: Full solicitation details with related contracts
get_open_solicitationsGet currently open solicitations (upcoming due dates). Args: limit: Maximum results (default 20, max 50) Returns: List of open solicitations sorted by due date, with Databook and City Record links
search_jobsSearch NYC government job postings. Args: query_text: Search in job title or description (optional) agency: Filter by agency name (partial match) category: Filter by job category (e.g., "Engineering", "Legal") limit: Maximum results (default 20, max 50) Returns: List of matching job postings with sa…
get_job_detailsGet detailed information for a specific job posting.
get_salary_statsGet salary statistics for NYC government employees. Args: agency: Filter by agency name (partial match, optional) title: Filter by job title (partial match, optional) fiscal_year: Filter by fiscal year (e.g., 2024, optional) Returns: Salary statistics including averages, ranges, and totals
get_top_salariesGet highest paid NYC government employees. Args: agency: Filter by agency name (optional) fiscal_year: Fiscal year (defaults to most recent) limit: Maximum results (default 20, max 50) Returns: List of highest paid employees with salary details
search_facilitiesSearch NYC city facilities (buildings, parks, offices). Args: query_text: Search facility name (optional) facility_type: Filter by type (e.g., "School", "Library", "Police Station") borough: Filter by borough (Manhattan, Brooklyn, Queens, Bronx, Staten Island) limit: Maximum results (default 25, max…
get_facility_typesGet list of all facility types and their counts. Returns: Breakdown of facility types across NYC
search_schoolsSearch NYC schools (public, charter, private, after-school programs). Args: query_text: Search school name (optional) school_type: Filter by type (e.g., "elementary", "high school", "charter", "after-school") borough: Filter by borough (Manhattan, Brooklyn, Queens, Bronx, Staten Island) limit: Maxim…
get_school_statsGet overview of NYC schools by type and borough. Returns: Breakdown of school counts by category and location
get_agency_budgetGet budget breakdown for a specific agency. Args: agency: Agency name (partial match) fiscal_year: Fiscal year (defaults to most recent) Returns: Budget details by category with adopted vs modified amounts
compare_agency_budgetsCompare budgets across NYC agencies. Args: fiscal_year: Fiscal year (defaults to most recent) limit: Number of agencies to show (default 20) Returns: Top agencies by budget with year-over-year comparison
search_legislationSearch NYC Council legislation (introductions) by keyword.
get_legislation_detailGet full details for a specific NYC Council bill.
get_council_memberGet NYC Council member profile with committee assignments.
get_recent_legislationGet recently introduced or enacted NYC Council legislation.
get_local_lawsGet local laws enacted by the NYC Council in a given year.
get_upcoming_hearingsGet upcoming (and recent) NYC Council committee hearings.
get_hearing_detailGet full details for a specific NYC Council hearing/event.
get_hearing_briefingGenerate a data briefing for an upcoming NYC Council hearing.
BASE_URLMCP_URLPOSTGRES_HOSTPOSTGRES_PORTPOSTGRES_DBPOSTGRES_USERCORS_EXTRA_ORIGINSAPI_EDGE_MAX_AGEDATA_SCHEDULER_ENABLEDSPENDING_S3_BUCKETREVIEW_ROOTSPENDING_DATA_BASENYCDB_PATHNYC_ORG_MIN_EXPECTEDDATA_LAKE_PATHNYCHA_CURATED_XWALK_CSVGEMINI_API_KEYNORMALIZER_TIMEOUTPIPELINE_ALERT_FROMPIPELINE_ALERT_TOSOCRATA_BASEGOOGLE_SHEETS_CREDENTIALSTITLES_ENRICHMENT_CSVDB_USERDB_PASSWORDDB_NAMEDB_HOSTAPI_BASE_URLORG_CORE_FEED_FLOOREXTRACTOR_S3_BUCKETEXTRACTOR_S3_PREFIXCHECKBOOK_MAX_RECORDSLOG_LEVELDUCKDB_MAX_WORKERSBUDGET_REVENUE_BASEDATABOOK_PUBLIC_API_KEYPG_POOL_MAX_SIZEPG_POOL_MIN_SIZESENTRY_DSNSENTRY_ENVIRONMENTSENTRY_TRACES_SAMPLE_RATETool annotations
40/41 tools have annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
41/41 tools missing one or more hints — get_database_overview (missing: destructiveHint); search_organizations (missing: destructiveHint); get_organization_profile (missing: destructiveHint), +38 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Tool test coverage
14/41 tools referenced in tests (34%)
Write tests that reference each tool by name so every tool has at least one test.
No eval / new Function
1 eval() or new Function() call — dynamic code execution
Replace eval / Function with explicit parsing or safer alternatives.
Readable source code
1 file are minified or bundled, which is usually build output rather than concealment
Ship unminified, readable source.
Secrets not logged
4 secret values sent to print
Redact or omit secret values from log output.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/sarapis/databook)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check