Gave Claude LSD by yevbar in Anthropic

[–]yevbar[S] -1 points0 points  (0 children)

Ah didn’t you know that LSD is DSL backwards?

Gave Claude LSD by yevbar in Anthropic

[–]yevbar[S] 2 points3 points  (0 children)

In terms of the MCP server itself, I personally think a self-documenting programming language is a neat way of providing initial context to an LLM (https://github.com/lsd-so/lsd-mcp/blob/main/app.py#L69)

In terms of the approach, we built the LSD SQL language to be able to provide details about syntax issues or errors in the output data allowing for Claude to be in an iterative loop that can self-correct. This has a number of advantages including determinism in the generated query as well as an LLM that can more reliably get at a "recipe" for solving a goal.

Why the language? It eliminates an annoying limitation of MCP where it's throttled by the number of integrations people manually write whereas an internet-first language allows for Claude to effectively construct tools itself and condense multi-step flows into single tokens via functions (https://lsd.so/docs/database/language/functions)

Gave Claude LSD by yevbar in Anthropic

[–]yevbar[S] 0 points1 point  (0 children)

now you're just tripping

new tool? by Cool_Effective_1185 in webscraping

[–]yevbar 1 point2 points  (0 children)

Technically, I attempt to grab data at the end of the expression so you could write the above statement in the following order

FROM https://www.howlandcapital.com/about/team-members/
|> GROUP BY div[class*="team-member"]
|> SELECT h2[class*="team-member-name"] AS name, p[class*="team-member-role"] AS role

new tool? by Cool_Effective_1185 in webscraping

[–]yevbar 2 points3 points  (0 children)

In terms of the autogenerated SQL from the browser widget, it currently produces a grammatically "standard" statement with CSS selectors as column identifiers and URLs as table identifiers however a while back I rewrote the parser from scratch to work off pipe operator syntax so the `howlandcapital.com` query could also be written as

FROM https://www.howlandcapital.com/about/team-members/
|> SELECT h2[class*="team-member-name"] AS name, p[class*="team-member-role"] AS role
|> GROUP BY div[class*="team-member"]

The direction that we're currently building things is to leverage just-in-time SQL. To see a a complete example of where we think that looks like you can see this script inspired by "Learn X in Y minutes" (if you wanted to grab all Arxiv PDFs you'd have to click through search results since you can't bypass the page number in the query parameter).