Crawler Summary

tools answer-first brief

A list of tools I used to make teaching interactive Tools Getting Started To run this application: Building For Production To build this application for production: Testing This project uses $1 for testing. You can run the tests with: Styling This project uses $1 for styling. Setting up Neon When running the dev command, the @neondatabase/vite-plugin-postgres will identify there is not a database setup. It will then create and seed a claimable database. It is the same Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.

Freshness

Last checked 2/22/2026

Best For

Contract is available with explicit auth and schema references.

Not Ideal For

tools is not ideal for teams that need stronger public trust telemetry, lower setup complexity, or more explicit contract coverage before production rollout.

Evidence Sources Checked

editorial-content, capability-contract, runtime-metrics, public facts pack

Claim this agent
Agent DossierGitHubSafety: 62/100

tools

A list of tools I used to make teaching interactive Tools Getting Started To run this application: Building For Production To build this application for production: Testing This project uses $1 for testing. You can run the tests with: Styling This project uses $1 for styling. Setting up Neon When running the dev command, the @neondatabase/vite-plugin-postgres will identify there is not a database setup. It will then create and seed a claimable database. It is the same

MCPverified

Public facts

6

Change events

1

Artifacts

0

Freshness

Feb 22, 2026

Verifiededitorial-content1 verified compatibility signal

Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.

Schema refs publishedTrust evidence available

Trust score

Unknown

Compatibility

MCP

Freshness

Feb 22, 2026

Vendor

Oluwasetemi

Artifacts

0

Benchmarks

0

Last release

Unpublished

Executive Summary

Key links, install path, and a quick operational read before the deeper crawl record.

Verifiededitorial-content

Summary

Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.

Setup snapshot

git clone https://github.com/Oluwasetemi/tools.git
  1. 1

    Setup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.

  2. 2

    Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Evidence Ledger

Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.

Verifiededitorial-content
Vendor (1)

Vendor

Oluwasetemi

profilemedium
Observed Feb 24, 2026Source linkProvenance
Compatibility (2)

Protocol compatibility

MCP

contracthigh
Observed Feb 24, 2026Source linkProvenance

Auth modes

mcp, api_key

contracthigh
Observed Feb 24, 2026Source linkProvenance
Artifact (1)

Machine-readable schemas

OpenAPI or schema references published

contracthigh
Observed Feb 24, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance
Integration (1)

Crawlable docs

6 indexed pages on the official domain

search_documentmedium
Observed Apr 15, 2026Source linkProvenance

Release & Crawl Timeline

Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.

Self-declaredagent-index

Artifacts Archive

Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.

Self-declaredGITHUB MCP

Extracted files

0

Examples

6

Snippets

0

Languages

typescript

Executable Examples

bash

bun install
bun --bun run start

bash

bun --bun run build

bash

bun --bun run test

tsx

import { Link } from '@tanstack/react-router'

tsx

<Link to="/about">About</Link>

tsx

import { createRootRoute, Link, Outlet } from '@tanstack/react-router'

import { TanStackRouterDevtools } from '@tanstack/react-router-devtools'

export const Route = createRootRoute({
  component: () => (
    <>
      <header>
        <nav>
          <Link to="/">Home</Link>
          <Link to="/about">About</Link>
        </nav>
      </header>
      <Outlet />
      <TanStackRouterDevtools />
    </>
  ),
})

Docs & README

Full documentation captured from public sources, including the complete README when available.

Self-declaredGITHUB MCP

Docs source

GITHUB MCP

Editorial quality

ready

A list of tools I used to make teaching interactive Tools Getting Started To run this application: Building For Production To build this application for production: Testing This project uses $1 for testing. You can run the tests with: Styling This project uses $1 for styling. Setting up Neon When running the dev command, the @neondatabase/vite-plugin-postgres will identify there is not a database setup. It will then create and seed a claimable database. It is the same

Full README

Tools

Getting Started

To run this application:

bun install
bun --bun run start

Building For Production

To build this application for production:

bun --bun run build

Testing

This project uses Vitest for testing. You can run the tests with:

bun --bun run test

Styling

This project uses Tailwind CSS for styling.

Setting up Neon

When running the dev command, the @neondatabase/vite-plugin-postgres will identify there is not a database setup. It will then create and seed a claimable database.

It is the same process as Neon Launchpad.

[!IMPORTANT] Claimable databases expire in 72 hours.

Routing

This project uses TanStack Router. The initial setup is a file based router. Which means that the routes are managed as files in src/routes.

Adding A Route

To add a new route to your application just add another a new file in the ./src/routes directory.

TanStack will automatically generate the content of the route file for you.

Now that you have two routes you can use a Link component to navigate between them.

Adding Links

To use SPA (Single Page Application) navigation you will need to import the Link component from @tanstack/react-router.

import { Link } from '@tanstack/react-router'

Then anywhere in your JSX you can use it like so:

<Link to="/about">About</Link>

This will create a link that will navigate to the /about route.

More information on the Link component can be found in the Link documentation.

Using A Layout

In the File Based Routing setup the layout is located in src/routes/__root.tsx. Anything you add to the root route will appear in all the routes. The route content will appear in the JSX where you use the <Outlet /> component.

Here is an example layout that includes a header:

import { createRootRoute, Link, Outlet } from '@tanstack/react-router'

import { TanStackRouterDevtools } from '@tanstack/react-router-devtools'

export const Route = createRootRoute({
  component: () => (
    <>
      <header>
        <nav>
          <Link to="/">Home</Link>
          <Link to="/about">About</Link>
        </nav>
      </header>
      <Outlet />
      <TanStackRouterDevtools />
    </>
  ),
})

The <TanStackRouterDevtools /> component is not required so you can remove it if you don't want it in your layout.

More information on layouts can be found in the Layouts documentation.

Data Fetching

There are multiple ways to fetch data in your application. You can use TanStack Query to fetch data from a server. But you can also use the loader functionality built into TanStack Router to load the data for a route before it's rendered.

For example:

const peopleRoute = createRoute({
  getParentRoute: () => rootRoute,
  path: '/people',
  loader: async () => {
    const response = await fetch('https://swapi.dev/api/people')
    return response.json() as Promise<{
      results: {
        name: string
      }[]
    }>
  },
  component: () => {
    const data = peopleRoute.useLoaderData()
    return (
      <ul>
        {data.results.map(person => (
          <li key={person.name}>{person.name}</li>
        ))}
      </ul>
    )
  },
})

Loaders simplify your data fetching logic dramatically. Check out more information in the Loader documentation.

React-Query

React-Query is an excellent addition or alternative to route loading and integrating it into you application is a breeze.

First add your dependencies:

bun install @tanstack/react-query @tanstack/react-query-devtools

Next we'll need to create a query client and provider. We recommend putting those in main.tsx.

import { QueryClient, QueryClientProvider } from '@tanstack/react-query'

// ...

const queryClient = new QueryClient()

// ...

if (!rootElement.innerHTML) {
  const root = ReactDOM.createRoot(rootElement)

  root.render(
    <QueryClientProvider client={queryClient}>
      <RouterProvider router={router} />
    </QueryClientProvider>
  )
}

You can also add TanStack Query Devtools to the root route (optional).

import { ReactQueryDevtools } from '@tanstack/react-query-devtools'

const rootRoute = createRootRoute({
  component: () => (
    <>
      <Outlet />
      <ReactQueryDevtools buttonPosition="top-right" />
      <TanStackRouterDevtools />
    </>
  ),
})

Now you can use useQuery to fetch your data.

import { useQuery } from '@tanstack/react-query'

import './App.css'

function App() {
  const { data } = useQuery({
    queryKey: ['people'],
    queryFn: () =>
      fetch('https://swapi.dev/api/people')
        .then(res => res.json())
        .then(data => data.results as { name: string }[]),
    initialData: [],
  })

  return (
    <div>
      <ul>
        {data.map(person => (
          <li key={person.name}>{person.name}</li>
        ))}
      </ul>
    </div>
  )
}

export default App

You can find out everything you need to know on how to use React-Query in the React-Query documentation.

State Management

Another common requirement for React applications is state management. There are many options for state management in React. TanStack Store provides a great starting point for your project.

First you need to add TanStack Store as a dependency:

bun install @tanstack/store

Now let's create a simple counter in the src/App.tsx file as a demonstration.

import { useStore } from '@tanstack/react-store'
import { Store } from '@tanstack/store'
import './App.css'

const countStore = new Store(0)

function App() {
  const count = useStore(countStore)
  return (
    <div>
      <button onClick={() => countStore.setState(n => n + 1)}>
        Increment -
        {' '}
        {count}
      </button>
    </div>
  )
}

export default App

One of the many nice features of TanStack Store is the ability to derive state from other state. That derived state will update when the base state updates.

Let's check this out by doubling the count using derived state.

import { useStore } from '@tanstack/react-store'
import { Derived, Store } from '@tanstack/store'
import './App.css'

const countStore = new Store(0)

const doubledStore = new Derived({
  fn: () => countStore.state * 2,
  deps: [countStore],
})
doubledStore.mount()

function App() {
  const count = useStore(countStore)
  const doubledCount = useStore(doubledStore)

  return (
    <div>
      <button onClick={() => countStore.setState(n => n + 1)}>
        Increment -
        {' '}
        {count}
      </button>
      <div>
        Doubled -
        {doubledCount}
      </div>
    </div>
  )
}

export default App

We use the Derived class to create a new store that is derived from another store. The Derived class has a mount method that will start the derived store updating.

Once we've created the derived store we can use it in the App component just like we would any other store using the useStore hook.

You can find out everything you need to know on how to use TanStack Store in the TanStack Store documentation.

PartyKit Real-time Features

This project includes PartyKit for real-time multiplayer features including polls and Kahoot-style quiz games.

Quick Start

  1. Start the PartyKit server (in one terminal):
bunx partykit dev
  1. Start the application (in another terminal):
bun run dev
  1. Try the demos:
    • Polls: http://localhost:3000/demo/party/polls
    • Kahoot Host: http://localhost:3000/demo/party/kahoot-host
    • Kahoot Player: http://localhost:3000/demo/party/kahoot-player?room=<room-id>

Features

Real-time Polls

  • Create polls with multiple options
  • See votes update in real-time across all connected clients
  • One vote per user
  • Poll creator can end the poll

Kahoot-style Quiz Games

  • Host creates games with multiple questions
  • Players join with unique names
  • Real-time gameplay with time-based scoring
  • Live leaderboards and final rankings

Documentation

For detailed information about PartyKit servers, see party/README.md.

Environment Configuration

Copy .env.example to .env.local and configure:

# For local development
VITE_PARTYKIT_HOST=localhost:1999

# For production
VITE_PARTYKIT_HOST=your-project.partykit.dev

Deployment

Deploy to PartyKit:

bunx partykit login
bunx partykit deploy

Demo files

Files prefixed with demo can be safely deleted. They are there to provide a starting point for you to play around with the features you've installed.

Learn More

You can learn more about all of the offerings from TanStack in the TanStack documentation.

Contract & API

Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.

Verifiedcapability-contract

Contract coverage

Status

ready

Auth

mcp, api_key

Streaming

No

Data region

global

Protocol support

MCP: verified

Requires: mcp, lang:typescript

Forbidden: none

Guardrails

Operational confidence: medium

Contract is available with explicit auth and schema references.
Trust confidence is not low and verification freshness is acceptable.
Protocol support is explicitly confirmed in contract metadata.
Invocation examples
curl -s "https://xpersona.co/api/v1/agents/mcp-oluwasetemi-tools/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-oluwasetemi-tools/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-oluwasetemi-tools/trust"

Reliability & Benchmarks

Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.

Missingruntime-metrics

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

No benchmark suites or observed failure patterns are available.

Media & Demo

Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.

Missingno-media
No screenshots, media assets, or demo links are available.

Related Agents

Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.

Self-declaredprotocol-neighbors
GITLAB_AI_CATALOGgitlab-mcp

Rank

83

A Model Context Protocol (MCP) server for GitLab

Traction

No public download signal

Freshness

Updated 2d ago

MCP
GITLAB_PUBLIC_PROJECTSgitlab-mcp

Rank

80

A Model Context Protocol (MCP) server for GitLab

Traction

No public download signal

Freshness

Updated 2d ago

MCP
GITLAB_AI_CATALOGrmcp-openapi

Rank

74

Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)

Traction

No public download signal

Freshness

Updated 2d ago

MCP
GITLAB_AI_CATALOGrmcp-actix-web

Rank

72

An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)

Traction

No public download signal

Freshness

Updated 2d ago

MCP
Machine Appendix

Contract JSON

{
  "contractStatus": "ready",
  "authModes": [
    "mcp",
    "api_key"
  ],
  "requires": [
    "mcp",
    "lang:typescript"
  ],
  "forbidden": [],
  "supportsMcp": true,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": "https://github.com/Oluwasetemi/tools#input",
  "outputSchemaRef": "https://github.com/Oluwasetemi/tools#output",
  "dataRegion": "global",
  "contractUpdatedAt": "2026-02-24T19:46:40.876Z",
  "sourceUpdatedAt": "2026-02-24T19:46:40.876Z",
  "freshnessSeconds": 4433193
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-oluwasetemi-tools/snapshot",
    "contractUrl": "https://xpersona.co/api/v1/agents/mcp-oluwasetemi-tools/contract",
    "trustUrl": "https://xpersona.co/api/v1/agents/mcp-oluwasetemi-tools/trust"
  },
  "curlExamples": [
    "curl -s \"https://xpersona.co/api/v1/agents/mcp-oluwasetemi-tools/snapshot\"",
    "curl -s \"https://xpersona.co/api/v1/agents/mcp-oluwasetemi-tools/contract\"",
    "curl -s \"https://xpersona.co/api/v1/agents/mcp-oluwasetemi-tools/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "MCP"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "GITHUB_MCP",
      "generatedAt": "2026-04-17T03:13:14.117Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "MCP",
      "type": "protocol",
      "support": "supported",
      "confidenceSource": "contract",
      "notes": "Confirmed by capability contract"
    }
  ],
  "flattenedTokens": "protocol:MCP|supported|contract"
}

Facts JSON

[
  {
    "factKey": "docs_crawl",
    "category": "integration",
    "label": "Crawlable docs",
    "value": "6 indexed pages on the official domain",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "MCP",
    "href": "https://xpersona.co/api/v1/agents/mcp-oluwasetemi-tools/contract",
    "sourceUrl": "https://xpersona.co/api/v1/agents/mcp-oluwasetemi-tools/contract",
    "sourceType": "contract",
    "confidence": "high",
    "observedAt": "2026-02-24T19:46:40.876Z",
    "isPublic": true
  },
  {
    "factKey": "auth_modes",
    "category": "compatibility",
    "label": "Auth modes",
    "value": "mcp, api_key",
    "href": "https://xpersona.co/api/v1/agents/mcp-oluwasetemi-tools/contract",
    "sourceUrl": "https://xpersona.co/api/v1/agents/mcp-oluwasetemi-tools/contract",
    "sourceType": "contract",
    "confidence": "high",
    "observedAt": "2026-02-24T19:46:40.876Z",
    "isPublic": true
  },
  {
    "factKey": "schema_refs",
    "category": "artifact",
    "label": "Machine-readable schemas",
    "value": "OpenAPI or schema references published",
    "href": "https://github.com/Oluwasetemi/tools#input",
    "sourceUrl": "https://xpersona.co/api/v1/agents/mcp-oluwasetemi-tools/contract",
    "sourceType": "contract",
    "confidence": "high",
    "observedAt": "2026-02-24T19:46:40.876Z",
    "isPublic": true
  },
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Oluwasetemi",
    "href": "https://github.com/Oluwasetemi/tools",
    "sourceUrl": "https://github.com/Oluwasetemi/tools",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-02-24T19:43:14.176Z",
    "isPublic": true
  },
  {
    "factKey": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://xpersona.co/api/v1/agents/mcp-oluwasetemi-tools/trust",
    "sourceUrl": "https://xpersona.co/api/v1/agents/mcp-oluwasetemi-tools/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true
  }
]

Change Events JSON

[
  {
    "eventType": "docs_update",
    "title": "Docs refreshed: Sign in to GitHub · GitHub",
    "description": "Fresh crawlable documentation was indexed for the official domain.",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  }
]

Sponsored

Ads related to tools and adjacent AI workflows.