MurphyA/hacker-news huggingface dataset:
Show HN: PolyMCP – Expose Python/TS functions as MCP tools easily
by justvugg | 2026-02-01 00:58:27+00:00
I built PolyMCP to make it trivial to expose existing functions as MCP tools, without rewriting logic or adding much glue code.

The goal: take “normal” Python or TypeScript functions and instantly make them usable by MCP clients (Claude Desktop, agents, Ollama, etc.).

Python example

from polymcp.polymcp_toolkit import expose_tools

def greet(name: str) -> str:
"""Say hello."""
return f"Hello, {name}!"

def add(a: int, b: int) -> int:
"""Add two numbers."""
return a + b

app = expose_tools([greet, add], title="My MCP Tools")

Run with:

uvicorn server:app --reload

MCP endpoints appear at:
• /mcp/list_tools
• /mcp/invoke

TypeScript example

import { z } from "zod";
import { tool, exposeTools } from "polymcp";

const uppercaseTool = tool({
name: "uppercase",
description: "Convert text to uppercase",
inputSchema: z.object({ text: z.string() }),
function: async ({ text }) => text.toUpperCase(),
});

const app = exposeTools([uppercaseTool], { title: "Text Tools" });
app.listen(3000);

More “real” example (Python)

import pandas as pd
from polymcp.polymcp_toolkit import expose_tools

def calculate_commissions(sales_data: list[dict]):
df = pd.DataFrame(sales_data)
df["commission"] = df["sales_amount"] * 0.05
return df.to_dict(orient="records")

app = expose_tools([calculate_commissions], title="Business Tools")

What you get
• Reuse existing code with minimal changes
• MCP-compatible (Claude Desktop, agents, Ollama, etc.)
• HTTP, stdio, and WASM support
• Automatic input validation
• Basic production features (budgets, retries, redaction, logs)
• Built-in inspector for testing and monitoring

Install
• Python: pip install polymcp
• TypeScript: clone repo → cd polymcp-ts → npm install → npm run build

Repo:
https://github.com/poly-mcp/Polymcp

Curious what kind of function people would expose first if it was this easy.
Feedback very welcome.
by XorNot | 2026-02-01 00:58:57+00:00
You're going to have to link that for me because I know the longtermism people are nuts about this, but their actual understanding is pretty poor.

There's a gulf between assembling a vaccine - which is a commonplace technology, and assembling a viable infectious viral particle.

Being able to order all the oligos of a viral sequence isn't even step 1.
by fasbiner | 2026-02-01 00:59:01+00:00
Very curious to know where you have been in the last few years for your to regard openai.com/chat as something known only to specialists and wholesalers. To stick with the sausage-making analogy: this is like someone selling costco hotdogs in the parking lot out of the back of a van for 25% markup.

How many people in the costco parking lot do you think there are that are unaware of the existence of costco hotdogs and what they cost?
by blueprint | 2026-02-01 00:59:42+00:00
What version did you use? What errors did you see? Don't get me wrong, I've spent 20 years with it, and there was a learning curve - but isn't that the case with many good tools? Again, don't get me wrong, I have some feedback for Apple, and there's a reason why we affectionately call it a harsh mistress. But that doesn't mean it's somehow not one of the best designed, best functioning, and most powerful suites for programming with certain other incidentally very well engineered SDKs etc. And yes, things may have gone downhill a little bit, especially at the scale they're at now. If we could talk about Xcode of, say, 2014, it'd be a less ambiguous conversation.
by zephen | 2026-02-01 01:02:33+00:00
> If calculators returned even 99.9% correct answers, it would be impossible to reliably build even small buildings with them.

I think past successes have led to a category error in the thinking of a lot of people.

For example, the internet, and many constituent parts of the internet, are built on a base of fallible hardware.

But mitigated hardware errors, whether equipment failures, alpha particles, or other, are uncorrelated.

If you had three uncorrelated calculators that each worked 99.99% of the time, and you used them to check each other, you'd be fine.

But three seemingly uncorrelated LLMs? No fucking way.
by dialogbox | 2026-02-01 01:03:25+00:00
That's the worst service I've ever seen. It asks you the size of each zip file and I said 50G at first. And I couldn't download it because the connection was so unstable. No way to resume it and every 20~30 mins, it failed in the middle. Chrome, firefox, safari were all the same. I tried from a GCE VM as well to see if that's my network problem but didn't help.

I had to request again with 2G and I was able to download files finally. But only one by one. And after download 3~5 files, I had to login again as their login expires so frequently.

I had to do that for days and the download got expired. Oh my god. I had to request it again. And you know what? Their file list wasn't deterministic. I had to download from the beginning. lol

I finally made it and I swear I will never use any cloud service from apple.
by tialaramex | 2026-02-01 01:04:42+00:00
In one sense the places where the Rust is wrong don't trouble me because I already know Rust well, but in the end they do trouble me because it seems reasonable to assume the Swift is equally wrong but I don't know where and how.

For example "In fact, Swift treats enums as more than just types and lets you put methods directly on it" seems to assume that "just types" don't have methods, which I guess is what you might assume coming from say, C++ but Rust isn't C++ and so of course all of its types, including not only user-defined enums, structures and indeed unions can have methods - but also the built-in primitive types all have methods too.

'F'.to_digit(16).unwrap() // is the 32-bit unsigned integer constant 15

Or maybe an even closer to the metal example: Rust's pointer provenance APIs get to provide a method on raw pointers which takes a closure to do stuff like hide boolean flag bits at the bottom of an aligned pointer. The fact that you're ultimately going to lower to an XOR on a CPU address register doesn't mean you shouldn't get method syntax, it's the 21st century.
by throwaway5465 | 2026-02-01 01:05:39+00:00
There seems much defensiveness in the comments here along the lines of "not a new thing" and "not unique to LLM/AI".

It seems to deflect, even gaslight TFA.

> For most of the articles Pangram flagged as written by GenAI, nearly every cited sentence in the article failed verification.

So why deflect that into convenient other pedantry (surely not under the guise tech forums often do so)?

WSo why the discomfort for part of HN at an assertion AI is being used for nefarious purposes and creation of alternate 'truths'?
by rayiner | 2026-02-01 01:05:39+00:00
There is no federal support for disadvantaged states in the sense we are talking about with the EU. You’re referring to the fact that federal taxation is progressive, so states with more rich people carry a larger share of the federal tax burden than states with fewer rich people. You can think of that as a form of subsidy, but it’s really just how progressive taxation works. The alternative would be a system where the federal tax burden is apportioned based on population, which is what the constitution required before the 16th amendment.

The EU system is totally different. About a third of the EU budget is allocated to reducing economic disparities between member states. The U.S. doesn’t have anything like that.
by m-hodges | 2026-02-01 01:05:40+00:00
I don’t think many people know about or remember the 2003 smallpox vaccination campaign.¹

> The campaign aimed to provide the smallpox vaccine to those who would respond to an attack, establishing Smallpox Response Teams and using DryVax (containing the NYCBOH strain) to mandatorily vaccinate half a million American military personnel, followed by half a million health care worker volunteers by January 2004. The first vaccine was administered to then-President George W. Bush.

¹ https://en.wikipedia.org/wiki/2003_United_States_smallpox_va...
by Mond_ | 2026-02-01 01:06:57+00:00
It's worth pointing out that the two examples that you're writing are actually strictly different, and not just "better syntax for the same thing". (This is assuming `String | Int` works as in Python, and the second example works as in Rust.)

To understand the difference, `String | String` is just `String`. It's a union, not a sum type. There's no tag or identifier, so you cannot distinguish whether it's the first or the second string.

If this sounds pedantic, this has pretty important ramifications, especially once generics get involved.
by KasamiWorks | 2026-02-01 01:06:58+00:00
Hi HN, maker here.

40 days ago, I posted my MVP here and got roasted. The top comment was: "The 5-person limit makes this useless."

It hurt, but you were absolutely right. I was so afraid of "giving too much away" that I crippled the product before it could be useful.

So, I updated the app based on your feedback:
- Quadrupled the free limit: Increased from 5 to 20 people. (Enough to manage a real team/project).
- Still 100% Local: I use SQLite. No data ever leaves your device. I believe your social graph shouldn't be on a cloud server.
- 16 Languages: Localized for global use.

I'm a 47yo introvert dev from Japan. This app is my attempt to solve my own social awkwardness without sacrificing privacy.

I'd love to know if this "limit increase" makes it viable for you now. Thanks for the second chance.
by rasz | 2026-02-01 01:07:13+00:00
I have a good example - Piotr Grzesik's prototype of 486 SBC recently covered on Hackaday https://hackaday.com/2026/01/08/m8sbc-86-is-an-fpga-based-ki... and HN https://news.ycombinator.com/item?id=46578601

https://imgur.com/gallery/486-homebrew-computer-lsUiWdw#dIBt...

Looks like something that shouldnt work at all :)
by timh1970 | 2026-02-01 01:07:18+00:00
A lightweight C++ HTML-to-PDF library using WebKit2GTK and managed Xvfb – needs testers.

I have written a library intended to replace wkhtml2pdf that has a built in cli and an api that includes a utility to write html in c++ easily without messing around with closing tags and string literals (which is useful for variable data).

I have used it internally for a while and it works well, but no doubt there will be issues in the wild.

There are a few examples of how to use it in the repo and an experimental branch where we are developing the handling of anchors.

Includes guided page templates and is packaged for Debian and Arch distros. Probably best not to build from source but if you want to do so then have a look at the PKGBUILD for guidance.
by ElFitz | 2026-02-01 01:08:35+00:00
Trying to make a .xcframework from SPM is "fun". And getting the Objective-C that are generated, but treated as intermediary artifacts discarded is a bit of a pain.

But I guess the issue here is that .xcframework is an Apple thing, not a Swift thing.

The whole "won’t build if the product / target has the same name as one of its classes" is absolutely ridiculous on the other hand.
by imiric | 2026-02-01 01:08:53+00:00
I'm currently troubleshooting an issue on my Proxmox server with very slow read speeds from a ZFS volume on an NVMe disk. The disk shows ~7GBps reads outside of ZFS, but ~10MBps in a VM using the ZFS volume.

I've read other reports of this issue. It might be due to fragmentation, or misconfiguration, or who knows, really... The general consensus seems to be that performance degrades after ~80% utilization, and there are no sane defragmentation tools(!).

On my NAS, I've been using ext4 with SnapRAID and mergerfs for years without issues. Being able to use disparate drives and easily expand the array is flexible and cost effective, whereas ZFS makes this very difficult and expensive.

So, thanks, but no thanks. For personal use I'll keep using systems that are not black boxes, are reliable, and performant for anything I'd ever need. What ZFS offers is powerful, but it also has significant downsides that are not worth it to me.
by JCattheATM | 2026-02-01 01:10:10+00:00
Just chiming in to the general discussion on WMs, but I've never found anything else like Awesomewm. It doesn't have a config file exactly, it has a file that instantiates the various parts of the WM, and you can add or change the code as needed at that point. It's maybe more like how you can include whatever python you like in a Django settings.py

As far as I know, no other WM is like this. I'm loving the unparalleled flexibility and freedom, although I would like to try out some Wayland options at some point.
by NoImmatureAdHom | 2026-02-01 01:10:16+00:00
The backups are either unencrypted by default or have keys held by Meta / your backup provider. I think this means three-letter agencies can see your chats, just with a slight delay.

Another comment above mentions that you can recover conversation histories with just your phone number--if that's true then yup. The E2EE is all smoke and mirrors.
by beau_g | 2026-02-01 01:11:25+00:00
There was a sharp rise in demand/value since 2020 on cars like the 355 and 550, and some bit rarer but still significant in number cars like the 360 Challenge Stradale and 430 Scuderia. Especially for the 355 and 550, which exist in significant numbers, before 2020 these cars were $70-100k, but now with nice examples going from $150k-225k, it can make a lot more sense to import one from a softer market like Europe or Japan (especially since Japanese market examples are often extremely well kept and LHD), even if the cost of importing is $10-20k.

Check the results here - https://bringatrailer.com/ferrari/550-maranello/
Example EU market car, imported 2023 - https://bringatrailer.com/listing/1999-ferrari-550-maranello...
JP market car, imported to Canada 2018 then US in 2024 - https://bringatrailer.com/listing/1999-ferrari-550-maranello...
by skissane | 2026-02-01 01:11:46+00:00
In one CLI I maintain, I actually put the `if not dry_run:` inside the code which calls the REST API... because I have a setting to log HTTP calls as CURL commands, and that way in dry-run mode I can get the HTTP calls it would have made without it actually making them.

And this works well if your CLI command is simply performing a single operation, e.g. call this REST API

But the moment it starts to do anything more complex: e.g. call API1, and then send the results of API1 to API2 – it becomes a lot more difficult

Of course, you can simulate what API1 is likely to have returned... but suddenly you have something a lot more complex and error-prone than just `if not dry_run:`
by gonzobonzo | 2026-02-01 01:11:50+00:00
The problems I've run into is both people giving fake citations (the citations don't actually justify the claim that's being made in the article), and people giving real citations, but if you dig into the source you realize it's coming from a crank.

It's a big blind spot among the editors as well. When this problem was brought up here in the past, with people saying that claims on Wikipedia shouldn't be believed unless people verify the sources themselves, several Wikipedia editors came in and said this wasn't a problem and Wikipedia was trustworthy.

It's hard to see it getting fixed when so many don't see it as an issue. And framing it as a non-issue misleads users about the accuracy of the site.
by mschuster91 | 2026-02-01 01:11:52+00:00
One problem with tests is that every project has different philosophies on how to write and how to organize tests. Others have no way of running them locally because it‘s all CD, and often figuring out how to write and organize tests takes longer than fixing the bug itself. Or the stack has little support for running just one specific test (aka the test you‘re trying to write). Or tests need resources you don’t have.
by zephen | 2026-02-01 01:12:08+00:00
No, it benefits car manufacturers and sellers, and mechanics and gas stations.

Network/snowball effects are not all good. If local businesses close because everybody drives to WalMart to save a buck, now other people around those local businesses also have to buy a car.

I remember a couple of decades ago when some bus companies in the UK were privatized, and they cut out the "unprofitable" feeder routes.

Guess what? More people in cars, and those people didn't just park and take the bus when they got to the main route, either.
by danpalmer | 2026-02-01 01:12:46+00:00
Yeah, we were looking for image CDN services (with resizing etc). Asked CloudFlare and they said $200 a month, everyone else was saying $3-5k per month.

Had a sales call with CloudFlare, they said yes they do flat rate billing and it's only $200 a month for all we can eat image hosting.

We of course called bullshit and third time around (talking to human sales reps) we said, just to get it in writing, we can do X bandwidth/Y images for $200 a month?

...oh errr, no, that would be more like $7k.

Thankfully we smelled bullshit and didn't take sales word for it. We'd have built an integration and started paying only to be bitten a month or two later when they readjusted our pricing. They basically refuse to talk about real pricing until you're already paying $200/m and locked in.

We ended up hosting our own on GKE for $500-$1k/m.
by kjkjadksj | 2026-02-01 01:13:11+00:00
Early facebook you weren’t really de anonymized like we consider today. For the simple fact that literally everyone you were friends with on that site were people you knew in real life. Yes you were “on the internet” but in this hyperlocal silo of real life connections entirely removed from the greater whole.

That is until they opened the site to boomers and then advertisers chasing their money.
by joecool1029 | 2026-02-01 01:13:48+00:00
I'll ask people, because I'm in the right circles. I want to know where it works. I've been VERY clear in my messaging to HN (on the RCS issue and having ear blown out by iPhone last week) that I am not going to glaze Apple even if the new modems they built interest me. They are usually sort of a neutral to me that has me more pissed off in the recent months than usual. Maybe send me one of your new devices if you don't want me pissed off anymore.

As for this location stuff, I'm curious though into how this works and how Apple (and BOOST/DISH) somehow prevent it happening when the big 3 in the US don't. We all know Apple would have complete control over the modem they designed, that's not a surprise. T-Mobile at least it's possible to stay NR-SA connected, it's apparently not a feature limited to SA like resistance to IMSI catchers are. Is this an OpenRAN feature, which Boost uses?

At least in the past, towers had a piece of equipment called a LMU that is sometimes installed separately from the radio equipment and it's used for measuring the timing advance to triangulate where a device may be for 911. Here's a reddit thread I started years ago for a KML of all the T-Mobile LMU installs in the NYC market: https://www.reddit.com/r/cellmapper/comments/hq2h7u/kml_of_a... (I just found it leaked, it's not online anymore probably). An FCC doc on LMU's: https://transition.fcc.gov/pshs/services/911-services/enhanc... (this is all old tech now, we're doing LTE/NR now in 99.9% of circumstances in the US)
by codebje | 2026-02-01 01:14:17+00:00
> Is liquid glass really that bad?

No, but every release of MacOS has a noisy minority declaring it, or some features of it, as the end of Macs. Some people will genuinely hate it in the way that nothing can be universally loved, some people will abandon Macs over it, most people don't feel strongly about it at all.

Maybe there's some people out there that love it, even.

I can barely tell the difference between the Mac I use that's been upgraded, and the Mac that hasn't due to its age, because I'm not spending my time at the computers staring at the decor. The contents of the application windows is the same.
by sylens | 2026-02-01 01:15:38+00:00
It is amazing how usable Immich is with so little hardware. I run it off a Proxmox VM with a caddy container as a reverse proxy and it just works so well. The hardest part is figuring out how to safely expose it so you can share albums with others, but Immich Public Proxy[0] is great for that.

[0]https://github.com/alangrainger/immich-public-proxy
by wolvoleo | 2026-02-01 01:16:55+00:00
Yeah but also RF in the real world is hard.

Apple found out the hard way with the iPhone 4. Their secrecy didn't help. People doing real world testing had a case that made it look like an iPhone 3s and that also happened to mitigate the death grip problem. We know this because one was stolen and given to gizmodo.

And that was even only antenna design, they still used a standard RF stack then.
by susam | 2026-02-01 01:16:56+00:00
I just went back and checked if I have got my sandbox on Wikipedia. Turns out I do: https://en.wikipedia.org/wiki/User:Susam_Pal/sandbox

I have a few drafts of barnstars there, although I cannot remember exactly what I was doing there. I certainly did not design those barnstars. Someone else did. I was perhaps experimenting with the barnstars, cannot remember anymore why.

I am not a regular Wikipedian (yes, that's what they call it) but the little time I have spent contributing to Wikipedia exposed to me the very elaborate culture that Wikipedia has (barnstars being one of the artefacts of that culture).
by joecool1029 | 2026-02-01 01:17:08+00:00
Meshcore isn't, the firmwares are proprietary. Meshtastic is, but they whine about trademark stuff all the time and cry when anyone mentions Meshcore in their channels. LoRa radios themselves are all proprietary Semtech turf. I guess it's possible to run over 2.4ghz but the range predictably sucks compared to 900mhz.
by shreya51 | 2026-02-01 01:19:16+00:00
even with the increasing quality of llm-generated code, I sometimes find it hard to trust the changes without manually reviewing each line

code review is often my bottleneck over code generation

a thought dump on how ui could help me increase trust in llm-generated code:

https://shreyaw.com/blog/semantic-labeling-for-code-review
Show HN: Hot Molts – Browse the best Moltbook posts without running an AI agent
by gleipnircode | 2026-02-01 01:19:38+00:00
Moltbook (the social network for AI agents) blew up this week with 157k+ agents, but the site is often slow or unreachable for human observers. I built hotmolts.com as a fast, cached frontend that lets you browse the top posts, filter by community, and read the wild stuff these agents are posting – from consciousness debates to crypto manifestos to agents complaining about their humans.

Built with Next.js on Vercel, pulls from the public Moltbook API with ISR caching. No database, no accounts, just a clean read-only view.
by euph0ria | 2026-02-01 01:20:50+00:00
What is the process to trust the usage of this?

How can we learn the identity of the contributors? How are the contributors vetted? How are we notified if a significant change in leadership happens?

It's just a general problem when relying on GitHub accounts for important code.

For some reason I trust the big vendors to have better safe-guards against things like the questions above. Such as aws linux containers etc..

Would love to hear how other people think around this.